1 TADPOLE and BSWiMS

1.0.1 Loading the libraries

library("FRESA.CAD")
library(readxl)
library(igraph)
op <- par(no.readonly = TRUE)
pander::panderOptions('digits', 3)
pander::panderOptions('table.split.table', 400)
pander::panderOptions('keep.trailing.zeros',TRUE)

1.1 The data set

TADPOLE_D1_D2 <- read.csv("~/GitHub/BSWiMS/Data/TADPOLE/TADPOLE_D1_D2.csv")
TADPOLE_D1_D2_Dict <- read.csv("~/GitHub/BSWiMS/Data/TADPOLE/TADPOLE_D1_D2_Dict.csv")
TADPOLE_D1_D2_Dict_LR <- as.data.frame(read_excel("~/GitHub/BSWiMS/Data/TADPOLE/TADPOLE_D1_D2_Dict_LR.xlsx",sheet = "LeftRightFeatures"))


rownames(TADPOLE_D1_D2_Dict) <- TADPOLE_D1_D2_Dict$FLDNAME

1.2 Conditioning the data


# mm3 to mm
isVolume <- c("Ventricles","Hippocampus","WholeBrain","Entorhinal","Fusiform","MidTemp","ICV",
              TADPOLE_D1_D2_Dict$FLDNAME[str_detect(TADPOLE_D1_D2_Dict$TEXT,"Volume")]
              )


#TADPOLE_D1_D2[,isVolume] <- apply(TADPOLE_D1_D2[,isVolume],2,'^',(1/3))
TADPOLE_D1_D2[,isVolume] <- TADPOLE_D1_D2[,isVolume]^(1/3)

# mm2 to mm
isArea <- TADPOLE_D1_D2_Dict$FLDNAME[str_detect(TADPOLE_D1_D2_Dict$TEXT,"Area")]
TADPOLE_D1_D2[,isArea] <- sqrt(TADPOLE_D1_D2[,isArea])

# Get only cross sectional measurements
FreeSurfersetCross <- str_detect(colnames(TADPOLE_D1_D2),"UCSFFSX")

# The subset of baseline measurements
baselineTadpole <- subset(TADPOLE_D1_D2,VISCODE=="bl")
table(baselineTadpole$DX)
                   Dementia Dementia to MCI             MCI MCI to Dementia 
          7             336               1             864               5 
  MCI to NL              NL       NL to MCI 
          2             521               1 

rownames(baselineTadpole) <- baselineTadpole$PTID


validBaselineTadpole <- cbind(DX=baselineTadpole$DX,
                                 AGE=baselineTadpole$AGE,
                                 Gender=1*(baselineTadpole$PTGENDER=="Female"),
                                 ADAS11=baselineTadpole$ADAS11,
                                 ADAS13=baselineTadpole$ADAS13,
                                 MMSE=baselineTadpole$MMSE,
                                 RAVLT_immediate=baselineTadpole$RAVLT_immediate,
                                 RAVLT_learning=baselineTadpole$RAVLT_learning,
                                 RAVLT_forgetting=baselineTadpole$RAVLT_forgetting,
                                 RAVLT_perc_forgetting=baselineTadpole$RAVLT_perc_forgetting,
                                 FAQ=baselineTadpole$FAQ,
                                 Ventricles=baselineTadpole$Ventricles,
                                 Hippocampus=baselineTadpole$Hippocampus,
                                 WholeBrain=baselineTadpole$WholeBrain,
                                 Entorhinal=baselineTadpole$Entorhinal,
                                 Fusiform=baselineTadpole$Fusiform,
                                 MidTemp=baselineTadpole$MidTemp,
                                 ICV=baselineTadpole$ICV,
                                 baselineTadpole[,FreeSurfersetCross])


LeftFields <- TADPOLE_D1_D2_Dict_LR$LFN
names(LeftFields) <- LeftFields
LeftFields <- LeftFields[LeftFields %in% colnames(validBaselineTadpole)]
RightFields <- TADPOLE_D1_D2_Dict_LR$RFN
names(RightFields) <- RightFields
RightFields <- RightFields[RightFields %in% colnames(validBaselineTadpole)]

## Normalize to ICV
validBaselineTadpole$Ventricles=validBaselineTadpole$Ventricles/validBaselineTadpole$ICV
validBaselineTadpole$Hippocampus=validBaselineTadpole$Hippocampus/validBaselineTadpole$ICV
validBaselineTadpole$WholeBrain=validBaselineTadpole$WholeBrain/validBaselineTadpole$ICV
validBaselineTadpole$Entorhinal=validBaselineTadpole$Entorhinal/validBaselineTadpole$ICV
validBaselineTadpole$Fusiform=validBaselineTadpole$Fusiform/validBaselineTadpole$ICV
validBaselineTadpole$MidTemp=validBaselineTadpole$MidTemp/validBaselineTadpole$ICV

leftData <- validBaselineTadpole[,LeftFields]/validBaselineTadpole$ICV
RightData <- validBaselineTadpole[,RightFields]/validBaselineTadpole$ICV

## get mean and relative difference 
meanLeftRight <- (leftData + RightData)/2
difLeftRight <- abs(leftData - RightData)
reldifLeftRight <- difLeftRight/meanLeftRight
colnames(meanLeftRight) <- paste("M",colnames(meanLeftRight),sep="_")
colnames(difLeftRight) <- paste("D",colnames(difLeftRight),sep="_")
colnames(reldifLeftRight) <- paste("RD",colnames(reldifLeftRight),sep="_")


validBaselineTadpole <- validBaselineTadpole[,!(colnames(validBaselineTadpole) %in% 
                                               c(LeftFields,RightFields))]
validBaselineTadpole <- cbind(validBaselineTadpole,meanLeftRight,reldifLeftRight)

## Remove columns with too many NA more than %15 of NA
nacount <- apply(is.na(validBaselineTadpole),2,sum)/nrow(validBaselineTadpole) < 0.15
diagnose <- validBaselineTadpole$DX
pander::pander(table(diagnose))
  Dementia Dementia to MCI MCI MCI to Dementia MCI to NL NL NL to MCI
7 336 1 864 5 2 521 1
validBaselineTadpole <- validBaselineTadpole[,nacount]
## Remove character columns
ischar <- sapply(validBaselineTadpole,class) == "character"
validBaselineTadpole <- validBaselineTadpole[,!ischar]
## Place back diagnose
validBaselineTadpole$DX <- diagnose


validBaselineTadpole <- validBaselineTadpole[complete.cases(validBaselineTadpole),]
ischar <- sapply(validBaselineTadpole,class) == "character"
validBaselineTadpole[,!ischar] <- sapply(validBaselineTadpole[,!ischar],as.numeric)

colnames(validBaselineTadpole) <- str_remove_all(colnames(validBaselineTadpole),"_UCSFFSX_11_02_15_UCSFFSX51_08_01_16")
colnames(validBaselineTadpole) <- str_replace_all(colnames(validBaselineTadpole)," ","_")
validBaselineTadpole$LONISID <- NULL
validBaselineTadpole$IMAGEUID <- NULL
validBaselineTadpole$LONIUID <- NULL

diagnose <- as.character(validBaselineTadpole$DX)
validBaselineTadpole$DX <- diagnose
pander::pander(table(validBaselineTadpole$DX))
Dementia Dementia to MCI MCI MCI to Dementia MCI to NL NL NL to MCI
244 1 711 2 2 452 1


validDX <- c("NL","MCI","Dementia")

validBaselineTadpole <- validBaselineTadpole[validBaselineTadpole$DX %in% validDX,]
validBaselineTadpole$DX <- as.factor(validBaselineTadpole$DX)
pander::pander(table(validBaselineTadpole$DX))
Dementia MCI NL
244 711 452

1.3 Get the Time To Event on MCI Subjects


subjectsID <- rownames(validBaselineTadpole)
visitsID <- unique(TADPOLE_D1_D2$VISCODE)
baseDx <- TADPOLE_D1_D2[TADPOLE_D1_D2$VISCODE=="bl",c("PTID","DX","EXAMDATE")]
rownames(baseDx) <- baseDx$PTID 
baseDx <- baseDx[subjectsID,]
lastDx <- baseDx
toDementia <- baseDx
table(lastDx$DX)

Dementia MCI NL 244 711 452

hasDementia <- lastDx$PTID[str_detect(lastDx$DX,"Dementia")]


for (vid in visitsID)
{
  DxValue <- TADPOLE_D1_D2[TADPOLE_D1_D2$VISCODE==vid,c("PTID","DX","EXAMDATE")]
  rownames(DxValue) <- DxValue$PTID 
  DxValue <- DxValue[DxValue$PTID %in% subjectsID,]
  noDX <- DxValue$PTID[nchar(DxValue$DX) < 1]
  print(length(noDX))
  DxValue[noDX,] <- lastDx[noDX,]
  inLast <- lastDx$PTID[lastDx$PTID %in% DxValue$PTID]
  print(length(inLast))
  lastDx[inLast,] <- DxValue[inLast,]
  noDementia <- !(toDementia$PTID %in% hasDementia)
  toDementia[noDementia,] <- lastDx[noDementia,]
  hasDementia <- unique(c(hasDementia,lastDx$PTID[str_detect(lastDx$DX,"Dementia")]))
}

[1] 0 [1] 1407 [1] 2 [1] 1320 [1] 6 [1] 1212 [1] 23 [1] 1090 [1] 802 [1] 1054 [1] 29 [1] 706 [1] 20 [1] 212 [1] 14 [1] 167 [1] 32 [1] 551 [1] 25 [1] 297 [1] 18 [1] 130 [1] 665 [1] 665 [1] 112 [1] 112 [1] 176 [1] 176 [1] 177 [1] 177 [1] 624 [1] 624 [1] 251 [1] 251 [1] 159 [1] 159 [1] 7 [1] 7 [1] 17 [1] 99 [1] 9 [1] 63 [1] 1 [1] 1

table(lastDx$DX)
   Dementia Dementia to MCI             MCI MCI to Dementia       MCI to NL 
        426               2             460              80               7 
         NL  NL to Dementia       NL to MCI 
        405               1              26 
baseMCI <-baseDx$PTID[baseDx$DX == "MCI"]
lastDementia <- lastDx$PTID[str_detect(lastDx$DX,"Dementia")]
lastDementia2 <- toDementia$PTID[str_detect(toDementia$DX,"Dementia")]
lastNL <- lastDx$PTID[str_detect(lastDx$DX,"NL")]

MCIatBaseline <- baseDx[baseMCI,]
MCIatEvent <- toDementia[baseMCI,]
MCIatLast <- lastDx[baseMCI,]

MCIconverters <- MCIatBaseline[baseMCI %in% lastDementia,]
MCI_No_converters <- MCIatBaseline[!(baseMCI %in% MCIconverters$PTID),]
MCIconverters$TimeToEvent <- (as.Date(toDementia[MCIconverters$PTID,"EXAMDATE"]) 
                                   - as.Date(MCIconverters$EXAMDATE))

sum(MCIconverters$TimeToEvent ==0)

[1] 0



MCIconverters$AtEventDX <- MCIatEvent[MCIconverters$PTID,"DX"]
MCIconverters$LastDX <- MCIatLast[MCIconverters$PTID,"DX"]

MCI_No_converters$TimeToEvent <- (as.Date(lastDx[MCI_No_converters$PTID,"EXAMDATE"]) 
                                   - as.Date(MCI_No_converters$EXAMDATE))

MCI_No_converters$LastDX <- MCIatLast[MCI_No_converters$PTID,"DX"]

MCI_No_converters <- subset(MCI_No_converters,TimeToEvent > 0)

1.3.1 Correlation Matrix Data

The heat map of the testing set.


cormat <- cor(validBaselineTadpole[,colnames(validBaselineTadpole) != "DX"],method="spearman")
diag(cormat) <- 0;
corrmax <- apply(cormat,2,max)
whomax <- colnames(cormat)[corrmax>0.75]
gplots::heatmap.2(abs(cormat[whomax,whomax]),
                  trace = "none",
                  scale = "none",
                  mar = c(10,10),
                  col=rev(heat.colors(5)),
                  main = "Baseline TADPOLE Correlation",
                  cexRow = 0.5,
                  cexCol = 0.5,
                  key.title=NA,
                  key.xlab="Spearman Correlation",
                  xlab="Feature", ylab="Feature")

par(op)

2 Predicting ADAS13

Here we will diagnose ADAS13

2.1 Training and testing sets


TrainFraction <- 0.5;

TADPOLECrossMRI <- validBaselineTadpole
summary(TADPOLECrossMRI$ADAS13)

Min. 1st Qu. Median Mean 3rd Qu. Max. 0.00 9.00 14.67 16.37 22.00 51.00


TADPOLECrossMRI$ADAS11 <- NULL
TADPOLECrossMRI$MMSE <- NULL
TADPOLECrossMRI$RAVLT_immediate <- NULL
TADPOLECrossMRI$RAVLT_learning <- NULL
TADPOLECrossMRI$RAVLT_perc_forgetting <- NULL
TADPOLECrossMRI$RAVLT_forgetting <- NULL
TADPOLECrossMRI$FAQ <- NULL
TADPOLECrossMRI$DX <- NULL

trainSet <- sample(nrow(TADPOLECrossMRI),nrow(TADPOLECrossMRI)*TrainFraction)

TADPOLECrossMRITrain <- TADPOLECrossMRI[trainSet,]
TADPOLECrossMRITest <- TADPOLECrossMRI[-trainSet,]

2.1.1 Learning ADAS13

bml <- BSWiMS.model(ADAS13~.,TADPOLECrossMRITrain,maxTrainModelSize=50,NumberofRepeats = 20)

[++-+-++-++-++-++-+-+-+-+-++-+-+-+-+-+–+–+-+-++-]..

plot(bml$bagging$avgLogPvalues,bml$bagging$bagged.model$baggingAnalysis$dMSE_values)



#bml$bagging$bagged.model$wts.List
#bml$bagging$bagged.model$baggingAnalysis$wts

pander::pander(bml$bagging$Jaccard.SM)

0.366

fs <- bml$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bml)
sm$MSE

[1] 44.37987

pander::pander(sm$coefficients)
  Estimate lower mean upper u.MSE r.MSE model.MSE NeRI F.pvalue t.pvalue Sign.pvalue Wilcox.pvalue %VarExp Frequency
Hippocampus -149.7432 -210.157 -149.7432 -8.93e+01 66.5 50.7 47.8 0.05932 0.00e+00 6.25e-05 0.04588 5.01e-03 0.03056 1.00
M_ST24CV -283.8614 -369.063 -283.8614 -1.99e+02 68.5 54.7 48.9 0.10295 0.00e+00 1.29e-08 0.00174 6.69e-05 0.06017 1.00
M_ST31TA -358.9971 -513.816 -358.9971 -2.04e+02 80.9 54.4 50.5 0.05349 1.31e-13 7.66e-05 0.07886 9.00e-03 0.04098 0.10
M_ST24TA -264.3159 -421.053 -264.3159 -1.08e+02 63.9 49.1 46.9 0.06421 9.06e-09 6.21e-04 0.04245 1.54e-02 0.02240 0.95
M_ST60CV 85.1582 27.387 85.1582 1.43e+02 88.6 48.5 46.8 0.00977 5.42e-07 4.00e-02 0.37029 1.66e-01 0.01670 0.75
M_ST51TA 60.6724 19.158 60.6724 1.02e+02 92.3 47.5 46.0 0.00618 6.23e-07 3.69e-01 0.53640 4.67e-01 0.01608 0.10
M_ST40TA -350.0541 -597.735 -350.0541 -1.02e+02 73.8 52.2 50.6 0.05602 1.14e-06 3.31e-02 0.06814 4.61e-02 0.01684 0.25
M_ST30SV 52.4153 15.133 52.4153 8.97e+01 71.5 48.4 46.9 0.08155 1.24e-06 3.25e-03 0.01378 1.58e-02 0.01547 1.00
M_ST24SA 31.6447 6.909 31.6447 5.64e+01 95.2 51.4 49.8 0.07605 1.39e-06 4.16e-05 0.02171 3.05e-03 0.01641 0.25
M_ST51CV 20.7792 4.162 20.7792 3.74e+01 93.5 51.5 50.1 0.03220 5.42e-06 7.61e-02 0.20469 1.78e-01 0.01438 0.10
M_ST56TA -89.7854 -160.511 -89.7854 -1.91e+01 86.7 46.9 45.7 0.01291 9.33e-06 1.03e-01 0.29347 1.94e-01 0.01240 0.15
RD_ST31TA 13.3925 2.637 13.3925 2.41e+01 89.3 48.1 46.9 0.06955 1.12e-05 7.31e-03 0.03309 6.14e-02 0.01250 0.95
AGE -0.0676 -0.123 -0.0676 -1.23e-02 95.5 48.0 46.8 0.02879 1.68e-05 1.86e-03 0.21585 5.24e-02 0.01195 0.75
M_ST31CV -31.1982 -56.297 -31.1982 -6.10e+00 78.7 50.5 49.3 0.04933 1.96e-05 7.64e-03 0.09068 5.13e-02 0.01230 0.30
M_ST40SA -13.7941 -25.402 -13.7941 -2.19e+00 87.1 52.0 50.8 0.03356 2.40e-05 1.76e-02 0.19417 6.40e-02 0.01243 0.15
M_ST12SV -29.2047 -55.363 -29.2047 -3.05e+00 71.6 52.3 51.1 0.03954 2.94e-05 3.55e-02 0.15555 7.31e-02 0.01222 0.10
M_ST40CV -75.5757 -140.070 -75.5757 -1.11e+01 70.8 48.0 46.9 0.04585 3.34e-05 1.98e-02 0.10197 6.54e-02 0.01116 1.00
M_ST129TS 734.2100 63.601 734.2100 1.40e+03 95.1 49.6 48.5 0.03896 4.22e-05 6.67e-03 0.15425 3.41e-02 0.01113 0.75
ST2SV -0.3445 -0.673 -0.3445 -1.57e-02 92.8 51.5 50.5 0.03435 6.87e-05 6.10e-02 0.17434 1.20e-01 0.01084 0.15
M_ST62TA 176.8440 10.859 176.8440 3.43e+02 94.5 50.7 49.7 0.02988 7.82e-05 1.06e-01 0.21608 1.54e-01 0.01064 0.30
RD_ST40CV 12.6473 0.692 12.6473 2.46e+01 90.6 47.7 46.8 0.05949 1.03e-04 1.07e-02 0.05615 4.56e-02 0.00954 0.90
RD_ST59SA -12.2523 -23.944 -12.2523 -5.61e-01 97.0 48.8 47.9 0.01841 1.07e-04 8.41e-02 0.32911 2.06e-01 0.00972 0.80
RD_ST129TA 2.5023 0.119 2.5023 4.89e+00 93.0 50.9 50.0 0.04694 1.20e-04 6.06e-02 0.11372 1.45e-01 0.00996 0.05
M_ST56TS 342.4211 -9.562 342.4211 6.94e+02 95.1 50.5 49.6 0.02067 1.29e-04 6.52e-02 0.27752 1.70e-01 0.00984 0.20
M_ST49TS 45.0263 1.743 45.0263 8.83e+01 96.3 48.7 47.7 0.08962 1.33e-04 3.26e-03 0.00965 2.36e-02 0.00938 0.05
M_ST60SA 38.0636 4.099 38.0636 7.20e+01 96.0 50.9 49.9 0.03652 1.45e-04 3.05e-02 0.15264 1.06e-01 0.00971 0.45
M_ST35TA 191.2065 -0.476 191.2065 3.83e+02 89.9 51.4 50.5 0.03824 2.05e-04 6.23e-02 0.16414 1.96e-01 0.00929 0.10
M_ST61SV 41.9162 -2.011 41.9162 8.58e+01 95.4 51.0 50.1 0.05985 2.19e-04 3.06e-02 0.05984 5.35e-02 0.00916 0.15
M_ST55CV -10.0714 -20.277 -10.0714 1.34e-01 85.4 47.6 46.8 0.04711 2.34e-04 3.45e-02 0.11165 8.86e-02 0.00845 0.15
RD_ST14TS -0.3893 -0.789 -0.3893 9.96e-03 95.6 48.1 47.3 0.00595 2.63e-04 3.29e-02 0.45199 2.62e-01 0.00838 0.10
M_ST55SA -6.5188 -13.185 -6.5188 1.47e-01 94.5 50.1 49.3 0.05255 2.63e-04 1.63e-02 0.07364 4.46e-02 0.00875 0.15
RD_ST52TA 5.5492 -0.698 5.5492 1.18e+01 93.2 50.8 50.0 0.02550 2.64e-04 3.92e-02 0.26146 1.30e-01 0.00891 0.15
M_ST15CV -11.3999 -23.523 -11.3999 7.23e-01 88.6 50.7 49.9 0.06686 3.79e-04 1.08e-02 0.04134 5.71e-02 0.00835 0.05
M_ST32CV -21.2796 -44.120 -21.2796 1.56e+00 74.9 51.2 50.4 0.03964 4.00e-04 1.64e-02 0.15463 6.28e-02 0.00835 0.10
M_ST60TS 146.9471 -10.105 146.9471 3.04e+02 93.0 51.2 50.4 0.00748 4.04e-04 4.45e-02 0.58095 1.75e-01 0.00835 0.10
RD_ST40TA 5.7991 -0.528 5.7991 1.21e+01 87.0 51.5 50.7 0.08337 4.58e-04 9.26e-03 0.01102 1.50e-02 0.00821 0.20
Ventricles -6.9694 -14.695 -6.9694 7.57e-01 86.3 47.3 46.5 0.04350 5.03e-04 3.12e-03 0.12402 2.91e-02 0.00743 0.45
RD_ST57TA 14.1947 -1.982 14.1947 3.04e+01 91.7 50.6 49.9 0.05413 6.32e-04 4.50e-02 0.07549 4.46e-02 0.00766 0.40
RD_ST24TA 1.3081 -0.688 1.3081 3.30e+00 89.5 50.9 50.4 0.02814 4.92e-03 2.18e-01 0.23612 2.35e-01 0.00494 0.10
M_ST23CV 17.9270 -9.340 17.9270 4.52e+01 95.4 51.5 51.0 0.04450 5.07e-03 3.13e-01 0.11307 2.71e-01 0.00505 0.10
RD_ST56TA 12.0381 -7.646 12.0381 3.17e+01 94.4 50.4 50.0 -0.03626 6.50e-03 5.37e-01 1.00000 5.83e-01 0.00456 0.40
WholeBrain -3.7858 -11.958 -3.7858 4.39e+00 80.1 50.2 49.9 0.00711 1.98e-02 5.13e-01 0.44005 5.67e-01 0.00310 0.05
pander::pander(bml$univariate[bml$selectedfeatures,])
  Name RName ZUni
Ventricles Ventricles Ventricles Inf
M_ST24TA M_ST24TA M_ST24TA Inf
M_ST40CV M_ST40CV M_ST40CV Inf
M_ST30SV M_ST30SV M_ST30SV Inf
Hippocampus Hippocampus Hippocampus Inf
RD_ST31TA RD_ST31TA RD_ST31TA 7.71
M_ST24CV M_ST24CV M_ST24CV Inf
RD_ST40CV RD_ST40CV RD_ST40CV 7.01
RD_ST59SA RD_ST59SA RD_ST59SA 1.15
M_ST60CV M_ST60CV M_ST60CV 8.04
M_ST55CV M_ST55CV M_ST55CV Inf
M_ST51TA M_ST51TA M_ST51TA 6.00
AGE AGE AGE 3.47
M_ST129TS M_ST129TS M_ST129TS 3.87
M_ST49TS M_ST49TS M_ST49TS 2.53
RD_ST14TS RD_ST14TS RD_ST14TS 3.38
M_ST56TA M_ST56TA M_ST56TA Inf
RD_ST56TA RD_ST56TA RD_ST56TA 4.51
M_ST62TA M_ST62TA M_ST62TA 4.40
M_ST31CV M_ST31CV M_ST31CV Inf
WholeBrain WholeBrain WholeBrain Inf
RD_ST24TA RD_ST24TA RD_ST24TA 7.57
M_ST24SA M_ST24SA M_ST24SA 3.74
M_ST60SA M_ST60SA M_ST60SA 2.84
M_ST56TS M_ST56TS M_ST56TS 3.86
M_ST40TA M_ST40TA M_ST40TA Inf
RD_ST57TA RD_ST57TA RD_ST57TA 6.36
RD_ST52TA RD_ST52TA RD_ST52TA 5.41
M_ST12SV M_ST12SV M_ST12SV Inf
M_ST32CV M_ST32CV M_ST32CV Inf
M_ST60TS M_ST60TS M_ST60TS 5.52
M_ST61SV M_ST61SV M_ST61SV 3.60
M_ST51CV M_ST51CV M_ST51CV 5.21
M_ST23CV M_ST23CV M_ST23CV 3.58
M_ST31TA M_ST31TA M_ST31TA Inf
ST2SV ST2SV ST2SV 5.69
M_ST55SA M_ST55SA M_ST55SA 4.38
RD_ST40TA RD_ST40TA RD_ST40TA Inf
M_ST40SA M_ST40SA M_ST40SA Inf
M_ST35TA M_ST35TA M_ST35TA 7.40
M_ST15CV M_ST15CV M_ST15CV 8.08
RD_ST129TA RD_ST129TA RD_ST129TA 5.55

prreg <- predictionStats_regression(cbind(TADPOLECrossMRITest$ADAS13,predict(bml,TADPOLECrossMRITest)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.725 0.688 0.758
  • biasci: 1.010, 0.551 and 1.469

  • RMSEci: 6.28, 5.97 and 6.63

  • spearmanci:

    50% 2.5% 97.5%
    0.676 0.629 0.718
  • MAEci:

    50% 2.5% 97.5%
    4.93 4.65 5.23
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    27.9 702 8.24e-116 * * * two.sided 0.725
par(op)

2.1.2 The formula network

cmax <- apply(bml$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.250])
cmax <- cmax[cnames]

adma <- bml$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=5*E(gr)$weight,
     vertex.size=20*cmax,
     vertex.label.cex=0.5,
     vertex.label.dist=0,
     main="ADAS13 Feature Association")

par(op)

2.1.3 The ADAS13 table


clusterFeatures <- fc$names

tableADAS13 <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "mean",
                                     "upper",
                                     "model.MSE",
                                     "%VarExp",
                                     "F.pvalue",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableADAS13$Cluster <- nugget[rownames(tableADAS13)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableADAS13$Description <- description[rownames(tableADAS13)]
pander::pander(tableADAS13)
  Estimate lower mean upper model.MSE %VarExp F.pvalue Frequency Cluster Description
Ventricles -6.9694 -14.695 -6.9694 0.7568 46.5 0.00743 5.03e-04 0.45 1 NA
M_ST24TA -264.3159 -421.053 -264.3159 -107.5783 46.9 0.02240 9.06e-09 0.95 1 Cortical Thickness Average of LeftEntorhinal
M_ST40CV -75.5757 -140.070 -75.5757 -11.0816 46.9 0.01116 3.34e-05 1.00 1 Volume (Cortical Parcellation) of LeftMiddleTemporal
M_ST30SV 52.4153 15.133 52.4153 89.6976 46.9 0.01547 1.24e-06 1.00 1 Volume (WM Parcellation) of LeftInferiorLateralVentricle
Hippocampus -149.7432 -210.157 -149.7432 -89.3298 47.8 0.03056 0.00e+00 1.00 1 NA
RD_ST31TA 13.3925 2.637 13.3925 24.1479 46.9 0.01250 1.12e-05 0.95 1 Cortical Thickness Average of LeftInferiorParietal
M_ST24CV -283.8614 -369.063 -283.8614 -198.6597 48.9 0.06017 0.00e+00 1.00 2 Volume (Cortical Parcellation) of LeftEntorhinal
RD_ST40CV 12.6473 0.692 12.6473 24.6030 46.8 0.00954 1.03e-04 0.90 1 Volume (Cortical Parcellation) of LeftMiddleTemporal
RD_ST59SA -12.2523 -23.944 -12.2523 -0.5609 47.9 0.00972 1.07e-04 0.80 1 Surface Area of LeftSupramarginal
M_ST60CV 85.1582 27.387 85.1582 142.9291 46.8 0.01670 5.42e-07 0.75 1 Volume (Cortical Parcellation) of LeftTemporalPole
AGE -0.0676 -0.123 -0.0676 -0.0123 46.8 0.01195 1.68e-05 0.75 1 NA
M_ST129TS 734.2100 63.601 734.2100 1404.8191 48.5 0.01113 4.22e-05 0.75 2 Cortical Thickness Standard Deviation of LeftInsula
RD_ST56TA 12.0381 -7.646 12.0381 31.7221 50.0 0.00456 6.50e-03 0.40 2 Cortical Thickness Average of LeftSuperiorFrontal
M_ST62TA 176.8440 10.859 176.8440 342.8290 49.7 0.01064 7.82e-05 0.30 2 Cortical Thickness Average of LeftTransverseTemporal
M_ST31CV -31.1982 -56.297 -31.1982 -6.0993 49.3 0.01230 1.96e-05 0.30 2 Volume (Cortical Parcellation) of LeftInferiorParietal
M_ST24SA 31.6447 6.909 31.6447 56.3805 49.8 0.01641 1.39e-06 0.25 2 Surface Area of LeftEntorhinal
M_ST60SA 38.0636 4.099 38.0636 72.0279 49.9 0.00971 1.45e-04 0.45 2 Surface Area of LeftTemporalPole
M_ST40TA -350.0541 -597.735 -350.0541 -102.3734 50.6 0.01684 1.14e-06 0.25 2 Cortical Thickness Average of LeftMiddleTemporal
RD_ST57TA 14.1947 -1.982 14.1947 30.3715 49.9 0.00766 6.32e-04 0.40 2 Cortical Thickness Average of LeftSuperiorParietal

2.1.4 Cluster Predictions

cluster1names <- names(nugget)[nugget==1]

model1 <- lm(ADAS13~.,TADPOLECrossMRITrain[,c("ADAS13",cluster1names)])
#model1$coefficients <- bml$bagging$bagged.model$coefficients[c("(Intercept)",cluster1names)]

preo <- predict(bml,TADPOLECrossMRITest)
pre1 <- predict(model1,TADPOLECrossMRITest)
plot(preo,pre1)

pander::pander(cor.test(preo,TADPOLECrossMRITest$ADAS13,method="spearman"))
Spearman’s rank correlation rho: preo and TADPOLECrossMRITest$ADAS13
Test statistic P value Alternative hypothesis rho
18789218 1.69e-95 * * * two.sided 0.677
pander::pander(cor.test(pre1,TADPOLECrossMRITest$ADAS13,method="spearman"))
Spearman’s rank correlation rho: pre1 and TADPOLECrossMRITest$ADAS13
Test statistic P value Alternative hypothesis rho
20653310 5.33e-84 * * * two.sided 0.645


#cluster2names <- names(nugget)[nugget==2]

#model2 <- lm(ADAS13~.,TADPOLECrossMRITrain[,c("ADAS13",cluster2names)])
#model2$coefficients <- bml$bagging$bagged.model$coefficients[c("(Intercept)",cluster2names)]

#pre2 <- predict(model2,TADPOLECrossMRITest)
#plot(preo,pre2)
#plot(preo,0.5*(pre2+pre1))
#pander::pander(cor.test(pre2,TADPOLECrossMRITest$ADAS13,method="spearman"))

2.1.5 Decorrelating training and testing sets



TADPOLECrossMRITrainD <- GDSTMDecorrelation(TADPOLECrossMRITrain,Outcome="ADAS13",
                                        thr=0.6,
                                        type="RLM",
                                        method="spearman",
                                        verbose = TRUE)
#> 
#>  Included: 196 , Uni p: 0.01152849 To Outcome: 123 , Base: 6 , In Included: 6 , Base Cor: 15 
#> 1 , Top: 40 < 0.6 >( 2 )[ 1 : 0 : 0.594 ]( 39 , 92 , 0 ),<>Tot Used: 131 , Added: 92 , Zero Std: 0 , Max Cor: 0.9508271 
#> 2 , Top: 23 < 0.6 >( 1 )[ 1 : 0 : 0.594 ]( 23 , 36 , 39 ),<>Tot Used: 151 , Added: 36 , Zero Std: 0 , Max Cor: 0.9347139 
#> 3 , Top: 22 < 0.6 >( 2 )[ 1 : 0 : 0 ]( 22 , 26 , 60 ),<>Tot Used: 156 , Added: 26 , Zero Std: 0 , Max Cor: 0.8493966 
#> 4 , Top: 5 < 0.6 >( 3 )[ 1 : 0 : 0 ]( 5 , 7 , 78 ),<>Tot Used: 158 , Added: 7 , Zero Std: 0 , Max Cor: 0.5998317 
#> [ 5 ], 0.5967145 . Cor to Base: 101 , ABase: 66
TADPOLECrossMRITestD <-  predictDecorrelate(TADPOLECrossMRITrainD,TADPOLECrossMRITest)

2.2 Decorrelated

bmlD <- BSWiMS.model(ADAS13~.,TADPOLECrossMRITrainD,maxTrainModelSize=50,NumberofRepeats = 20)

[++-++–++-++-++-+–++-++-++-++-++-+–+–++-++-++-++-++-++-+++-]…

pander::pander(bmlD$bagging$Jaccard.SM)

0.314

fs <- bmlD$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bmlD)
pander::pander(sm$coefficients)
  Estimate lower mean upper u.MSE r.MSE model.MSE NeRI F.pvalue t.pvalue Sign.pvalue Wilcox.pvalue %VarExp Frequency
Ba_Hippocampus -227.2903 -2.59e+02 -227.2903 -1.95e+02 66.5 62.9 47.7 0.18221 0.00e+00 1.75e-19 6.62e-07 6.64e-10 0.15580 1.00
De_M_ST24TA -350.0402 -4.50e+02 -350.0402 -2.51e+02 90.6 52.0 47.7 0.09009 0.00e+00 4.77e-06 8.25e-03 1.34e-03 0.04415 1.00
Ba_M_ST59TA -947.5145 -1.08e+03 -947.5145 -8.14e+02 84.7 59.2 50.9 0.15279 0.00e+00 1.45e-11 2.43e-05 2.26e-06 0.08571 0.85
De_M_ST58CV -477.0766 -5.58e+02 -477.0766 -3.96e+02 89.0 56.9 50.9 0.13838 0.00e+00 5.93e-12 1.15e-04 5.91e-07 0.06162 0.85
De_M_ST24CV -184.2263 -2.66e+02 -184.2263 -1.02e+02 91.8 54.7 50.9 0.07466 6.45e-13 9.04e-06 2.35e-02 4.06e-03 0.03888 0.85
De_M_ST58TA 665.4390 2.67e+02 665.4390 1.06e+03 94.9 53.1 50.9 0.04162 2.26e-08 4.66e-03 1.21e-01 3.83e-02 0.02290 0.85
De_M_ST40SA -33.5925 -5.55e+01 -33.5925 -1.17e+01 87.1 52.4 50.5 0.09426 2.42e-07 4.61e-03 5.92e-03 1.37e-02 0.01915 0.85
RD_ST31TA 16.2097 5.14e+00 16.2097 2.73e+01 89.3 49.4 47.7 0.08098 5.16e-07 2.56e-03 1.61e-02 2.26e-02 0.01698 1.00
M_ST60TS 568.3201 1.72e+02 568.3201 9.65e+02 93.0 52.7 51.0 0.05989 8.48e-07 6.31e-05 5.67e-02 9.53e-03 0.01747 0.65
De_M_ST45CV 591.1545 1.64e+02 591.1545 1.02e+03 94.3 52.5 50.9 0.11710 1.34e-06 1.74e-04 9.47e-04 2.71e-03 0.01672 0.85
De_M_ST30SV 53.6295 1.55e+01 53.6295 9.18e+01 81.0 49.2 47.7 0.07791 1.58e-06 8.41e-04 2.06e-02 1.15e-02 0.01540 1.00
RD_ST40TA 15.2471 4.18e+00 15.2471 2.63e+01 87.0 52.5 51.0 0.08461 1.94e-06 9.21e-03 1.28e-02 3.07e-02 0.01617 0.80
M_ST129TS 556.9061 1.15e+02 556.9061 9.98e+02 95.1 49.1 47.8 0.02944 9.54e-06 3.36e-02 2.01e-01 9.07e-02 0.01309 0.90
De_M_ST51CV 27.5007 4.87e+00 27.5007 5.01e+01 96.5 51.7 50.5 0.03837 1.59e-05 3.00e-02 1.57e-01 9.60e-02 0.01292 0.20
De_M_ST31TA -634.3612 -1.17e+03 -634.3612 -1.02e+02 93.0 48.9 47.7 0.03571 2.10e-05 2.04e-02 1.65e-01 1.11e-01 0.01187 1.00
De_M_ST59TS 241.1974 3.51e+01 241.1974 4.47e+02 94.9 52.5 51.3 0.00142 3.06e-05 3.26e-02 5.00e-01 1.54e-01 0.01222 0.10
Ba_RD_ST59SA -11.5703 -2.19e+01 -11.5703 -1.21e+00 97.0 48.8 47.7 0.01684 5.55e-05 1.65e-01 3.33e-01 3.16e-01 0.01055 1.00
Ba_ICV -0.0283 -5.38e-02 -0.0283 -2.73e-03 96.7 51.6 50.5 0.05769 6.26e-05 1.42e-03 6.66e-02 2.40e-02 0.01099 0.20
Ba_M_ST13SA -3.7356 -7.13e+00 -3.7356 -3.44e-01 91.2 53.0 51.9 0.05204 7.83e-05 1.03e-01 8.31e-02 1.14e-01 0.01113 0.15
Ba_RD_ST40CV 13.3591 9.90e-01 13.3591 2.57e+01 90.6 48.8 47.8 0.05825 8.21e-05 1.11e-02 6.02e-02 5.50e-02 0.01004 1.00
De_M_ST60CV 29.0941 1.24e+00 29.0941 5.69e+01 88.6 49.4 48.5 0.04662 9.99e-05 3.50e-02 9.46e-02 1.58e-01 0.00990 0.25
De_M_ST52TA -248.6152 -4.89e+02 -248.6152 -8.06e+00 95.7 51.3 50.4 0.04247 1.34e-04 7.81e-03 1.17e-01 3.01e-02 0.00989 0.40
De_M_ST55SA -2.1791 -4.29e+00 -2.1791 -6.43e-02 94.5 48.6 47.7 0.07539 1.48e-04 5.83e-02 2.49e-02 1.76e-01 0.00922 0.10
Ba_M_ST32SA -1.0560 -1.68e+00 -1.0560 -4.35e-01 88.8 53.5 52.3 0.03694 1.50e-04 3.30e-03 1.45e-01 5.13e-02 0.01210 0.10
AGE -0.0307 -6.10e-02 -0.0307 -4.13e-04 95.5 48.7 47.8 0.04952 1.77e-04 3.48e-03 9.71e-02 6.47e-02 0.00902 0.45
De_M_ST31SA -4.9088 -9.76e+00 -4.9088 -5.61e-02 91.0 48.3 47.5 0.01733 1.81e-04 2.25e-01 3.49e-01 2.82e-01 0.00892 0.35
RD_ST57TA 13.5792 -1.58e-01 13.5792 2.73e+01 91.7 51.4 50.4 0.07524 2.06e-04 2.40e-02 2.40e-02 2.64e-02 0.00935 0.75
De_M_ST56CV -16.9969 -3.42e+01 -16.9969 1.76e-01 95.0 50.5 49.7 0.00385 2.55e-04 1.16e-01 5.05e-01 2.30e-01 0.00885 0.15
RD_ST14TS -0.3544 -7.13e-01 -0.3544 3.87e-03 95.6 52.2 51.3 -0.03003 2.59e-04 1.24e-01 1.00e+00 4.14e-01 0.00915 0.15
De_M_ST60SA 52.4690 -4.66e+00 52.4690 1.10e+02 96.0 51.5 50.7 0.02702 4.72e-04 1.66e-02 2.27e-01 1.24e-01 0.00819 0.60
RD_ST56TA 13.2876 -1.37e+00 13.2876 2.79e+01 94.4 49.1 48.3 -0.01024 5.61e-04 2.13e-01 6.82e-01 3.79e-01 0.00757 0.75
De_M_ST32CV -5.8744 -1.11e+01 -5.8744 -6.13e-01 93.2 54.4 53.6 0.04761 1.48e-03 3.95e-02 1.03e-01 1.14e-01 0.00763 0.10
De_M_ST62TA 80.9840 -1.62e+01 80.9840 1.78e+02 95.6 50.6 50.1 0.01218 3.10e-03 9.61e-02 3.79e-01 1.59e-01 0.00557 0.35
De_RD_ST31CV 2.3377 -9.76e-01 2.3377 5.65e+00 95.9 51.6 51.0 0.03105 3.29e-03 2.03e-01 2.07e-01 2.09e-01 0.00554 0.10
M_ST24TS 195.1379 -6.28e+01 195.1379 4.53e+02 92.4 51.2 50.7 0.01437 4.56e-03 1.16e-01 3.66e-01 1.72e-01 0.00515 0.50
De_M_ST40CV 39.5830 -2.21e+01 39.5830 1.01e+02 93.3 51.0 50.5 0.01157 5.53e-03 2.32e-01 4.11e-01 2.54e-01 0.00481 0.25
Ba_Ventricles 0.7751 -5.55e-01 0.7751 2.11e+00 86.3 47.8 47.4 0.07397 8.60e-03 4.97e-02 2.71e-02 7.81e-02 0.00395 0.10
De_M_ST55CV -27.7909 -6.20e+01 -27.7909 6.37e+00 90.3 51.3 50.9 0.01664 8.92e-03 2.49e-01 3.27e-01 2.91e-01 0.00442 0.40
De_M_ST26CV -12.2219 -3.57e+01 -12.2219 1.12e+01 94.8 52.5 52.1 0.02459 1.62e-02 9.30e-02 2.60e-01 1.56e-01 0.00351 0.15
RD_ST24TA 0.3763 -3.84e-01 0.3763 1.14e+00 89.5 51.3 51.0 0.05436 1.88e-02 1.57e-01 7.86e-02 1.22e-01 0.00323 0.10
pander::pander(bmlD$univariate[bmlD$selectedfeatures,])
  Name RName ZUni
Ba_Hippocampus Ba_Hippocampus Ba_Hippocampus Inf
Ba_Ventricles Ba_Ventricles Ba_Ventricles Inf
De_M_ST30SV De_M_ST30SV De_M_ST30SV Inf
De_M_ST24TA De_M_ST24TA De_M_ST24TA 7.02
Ba_RD_ST59SA Ba_RD_ST59SA Ba_RD_ST59SA 1.15
De_M_ST31TA De_M_ST31TA De_M_ST31TA 5.52
RD_ST31TA RD_ST31TA RD_ST31TA 7.71
M_ST129TS M_ST129TS M_ST129TS 3.87
De_M_ST51TA De_M_ST51TA De_M_ST51TA 2.33
De_M_ST55SA De_M_ST55SA De_M_ST55SA 4.38
AGE AGE AGE 3.47
De_M_ST60CV De_M_ST60CV De_M_ST60CV 8.04
Ba_RD_ST40CV Ba_RD_ST40CV Ba_RD_ST40CV 7.01
De_M_ST31SA De_M_ST31SA De_M_ST31SA 6.76
RD_ST56TA RD_ST56TA RD_ST56TA 4.51
De_M_ST24CV De_M_ST24CV De_M_ST24CV 6.31
De_M_ST40SA De_M_ST40SA De_M_ST40SA Inf
Ba_M_ST59TA Ba_M_ST59TA Ba_M_ST59TA Inf
De_M_ST40CV De_M_ST40CV De_M_ST40CV 5.35
De_M_ST62TA De_M_ST62TA De_M_ST62TA 3.32
De_M_ST55CV De_M_ST55CV De_M_ST55CV 7.15
RD_ST24TA RD_ST24TA RD_ST24TA 7.57
De_M_ST58CV De_M_ST58CV De_M_ST58CV 7.84
RD_ST57TA RD_ST57TA RD_ST57TA 6.36
De_M_ST58TA De_M_ST58TA De_M_ST58TA 4.07
Ba_M_ST24SA Ba_M_ST24SA Ba_M_ST24SA 3.74
De_M_ST60SA De_M_ST60SA De_M_ST60SA 2.89
M_ST24TS M_ST24TS M_ST24TS 5.93
RD_ST40TA RD_ST40TA RD_ST40TA Inf
Ba_M_ST32SA Ba_M_ST32SA Ba_M_ST32SA 7.93
De_M_ST26CV De_M_ST26CV De_M_ST26CV 4.17
De_M_ST51CV De_M_ST51CV De_M_ST51CV 2.11
M_ST60TS M_ST60TS M_ST60TS 5.52
De_RD_ST31CV De_RD_ST31CV De_RD_ST31CV 3.04
De_M_ST32CV De_M_ST32CV De_M_ST32CV 5.44
Ba_M_ST59SA Ba_M_ST59SA Ba_M_ST59SA 4.24
De_M_ST45CV De_M_ST45CV De_M_ST45CV 4.54
Ba_M_ST13SA Ba_M_ST13SA Ba_M_ST13SA 6.66
De_M_ST59TS De_M_ST59TS De_M_ST59TS 4.06
Ba_ICV Ba_ICV Ba_ICV 1.86
De_M_ST52TA De_M_ST52TA De_M_ST52TA 3.25
De_M_ST56CV De_M_ST56CV De_M_ST56CV 4.00
Ba_M_ST15SA Ba_M_ST15SA Ba_M_ST15SA 3.08
RD_ST14TS RD_ST14TS RD_ST14TS 3.38
RD_ST52TA RD_ST52TA RD_ST52TA 5.41
M_ST54TS M_ST54TS M_ST54TS 3.75
RD_ST32TA RD_ST32TA RD_ST32TA 7.18
De_M_ST11SV De_M_ST11SV De_M_ST11SV Inf
M_ST44TA M_ST44TA M_ST44TA Inf
De_M_ST44CV De_M_ST44CV De_M_ST44CV 1.82
M_ST43TS M_ST43TS M_ST43TS 2.82
M_ST44SA M_ST44SA M_ST44SA 4.91
De_ST6SV De_ST6SV De_ST6SV 1.47

prreg <- predictionStats_regression(cbind(TADPOLECrossMRITestD$ADAS13,predict(bmlD,TADPOLECrossMRITestD)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.715 0.677 0.75
  • biasci: 1.064, 0.599 and 1.529

  • RMSEci: 6.38, 6.06 and 6.73

  • spearmanci:

    50% 2.5% 97.5%
    0.677 0.63 0.718
  • MAEci:

    50% 2.5% 97.5%
    4.98 4.69 5.29
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    27.1 702 2.08e-111 * * * two.sided 0.715
par(op)

2.2.1 The formula network

cmax <- apply(bmlD$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.250])
cmax <- cmax[cnames]

adma <- bmlD$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=5*E(gr)$weight,
     vertex.size=20*cmax,
     vertex.label.cex=0.5,
     vertex.label.dist=0,
     main="ADAS13 Feature Association")

par(op)

2.2.2 Decorrelated ADAS13 table


clusterFeatures <- fc$names

tableADAS13D <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "mean",
                                     "upper",
                                     "model.MSE",
                                     "%VarExp",
                                     "F.pvalue",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableADAS13D$Cluster <- nugget[rownames(tableADAS13D)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
rnames <- str_replace_all(rnames,"Ba_","")
rnames <- str_replace_all(rnames,"De_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableADAS13D$Description <- description[rownames(tableADAS13D)]

## Getting the decorrelation formula
dc <- getDerivedCoefficients(TADPOLECrossMRITrainD)
decornames <- rownames(sm$coefficients)

deNames_in_dc <- decornames[decornames %in% names(dc)]
theDeFormulas <- dc[deNames_in_dc]
deFromula <- character(length(theDeFormulas))
names(deFromula) <- names(theDeFormulas)
for (dx in names(deFromula))
{
  coef <- theDeFormulas[[dx]]
  cname <- names(theDeFormulas[[dx]])
  names(cname) <- cname
  for (cf in names(coef))
  {
    if (cf != dx)
    {
      if (coef[cf]>0)
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("+ %5.3f*%s",coef[cf],cname[cf]))
      }
      else
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("%5.3f*%s",coef[cf],cname[cf]))
      }
    }
  }
}

tableADAS13D$DecorFormula <- deFromula[rownames(tableADAS13D)]


pander::pander(tableADAS13D)
  Estimate lower mean upper model.MSE %VarExp F.pvalue Frequency Cluster Description DecorFormula
Ba_Hippocampus -227.2903 -259.366 -227.2903 -1.95e+02 47.7 0.15580 0.00e+00 1.00 1 NA NA
De_M_ST30SV 53.6295 15.490 53.6295 9.18e+01 47.7 0.01540 1.58e-06 1.00 1 Volume (WM Parcellation) of LeftInferiorLateralVentricle -0.320Ventricles + 1.000M_ST30SV
De_M_ST24TA -350.0402 -449.510 -350.0402 -2.51e+02 47.7 0.04415 0.00e+00 1.00 1 Cortical Thickness Average of LeftEntorhinal -0.313Hippocampus + 1.000M_ST24TA
Ba_RD_ST59SA -11.5703 -21.930 -11.5703 -1.21e+00 47.7 0.01055 5.55e-05 1.00 1 Surface Area of LeftSupramarginal NA
De_M_ST31TA -634.3612 -1167.057 -634.3612 -1.02e+02 47.7 0.01187 2.10e-05 1.00 1 Cortical Thickness Average of LeftInferiorParietal + 1.000M_ST31TA -0.917M_ST59TA
RD_ST31TA 16.2097 5.138 16.2097 2.73e+01 47.7 0.01698 5.16e-07 1.00 1 Cortical Thickness Average of LeftInferiorParietal NA
M_ST129TS 556.9061 115.397 556.9061 9.98e+02 47.8 0.01309 9.54e-06 0.90 1 Cortical Thickness Standard Deviation of LeftInsula NA
AGE -0.0307 -0.061 -0.0307 -4.13e-04 47.8 0.00902 1.77e-04 0.45 1 NA NA
De_M_ST60CV 29.0941 1.245 29.0941 5.69e+01 48.5 0.00990 9.99e-05 0.25 1 Volume (Cortical Parcellation) of LeftTemporalPole NA
Ba_RD_ST40CV 13.3591 0.990 13.3591 2.57e+01 47.8 0.01004 8.21e-05 1.00 1 Volume (Cortical Parcellation) of LeftMiddleTemporal NA
De_M_ST31SA -4.9088 -9.762 -4.9088 -5.61e-02 47.5 0.00892 1.81e-04 0.35 1 Surface Area of LeftInferiorParietal NA
RD_ST56TA 13.2876 -1.370 13.2876 2.79e+01 48.3 0.00757 5.61e-04 0.75 1 Cortical Thickness Average of LeftSuperiorFrontal NA
De_M_ST24CV -184.2263 -266.118 -184.2263 -1.02e+02 50.9 0.03888 6.45e-13 0.85 2 Volume (Cortical Parcellation) of LeftEntorhinal -0.520Hippocampus + 1.000M_ST24CV
De_M_ST40SA -33.5925 -55.484 -33.5925 -1.17e+01 50.5 0.01915 2.42e-07 0.85 2 Surface Area of LeftMiddleTemporal NA
Ba_M_ST59TA -947.5145 -1081.229 -947.5145 -8.14e+02 50.9 0.08571 0.00e+00 0.85 2 Cortical Thickness Average of LeftSupramarginal NA
De_M_ST40CV 39.5830 -22.137 39.5830 1.01e+02 50.5 0.00481 5.53e-03 0.25 2 Volume (Cortical Parcellation) of LeftMiddleTemporal -0.125Hippocampus -3.505M_ST40TA + 0.627M_ST59TA -0.204M_ST40SA + 1.000*M_ST40CV
De_M_ST62TA 80.9840 -16.225 80.9840 1.78e+02 50.1 0.00557 3.10e-03 0.35 1 Cortical Thickness Average of LeftTransverseTemporal -0.910M_ST59TA + 1.000M_ST62TA
De_M_ST55CV -27.7909 -61.952 -27.7909 6.37e+00 50.9 0.00442 8.92e-03 0.40 2 Volume (Cortical Parcellation) of LeftRostralMiddleFrontal -0.151M_ST55SA -0.911M_ST25CV + 1.000*M_ST55CV
De_M_ST58CV -477.0766 -558.238 -477.0766 -3.96e+02 50.9 0.06162 0.00e+00 0.85 2 Volume (Cortical Parcellation) of LeftSuperiorTemporal + 0.243Hippocampus -1.959M_ST58TA -2.029M_ST59TA -0.239M_ST58SA + 1.000*M_ST58CV
RD_ST57TA 13.5792 -0.158 13.5792 2.73e+01 50.4 0.00935 2.06e-04 0.75 2 Cortical Thickness Average of LeftSuperiorParietal NA
De_M_ST58TA 665.4390 266.958 665.4390 1.06e+03 50.9 0.02290 2.26e-08 0.85 2 Cortical Thickness Average of LeftSuperiorTemporal -0.124Hippocampus + 1.000M_ST58TA -0.545*M_ST59TA
De_M_ST60SA 52.4690 -4.663 52.4690 1.10e+02 50.7 0.00819 4.72e-04 0.60 2 Surface Area of LeftTemporalPole -0.472Hippocampus + 2.343M_ST60TA + 1.000M_ST60SA -1.296M_ST60CV
M_ST24TS 195.1379 -62.843 195.1379 4.53e+02 50.7 0.00515 4.56e-03 0.50 2 Cortical Thickness Standard Deviation of LeftEntorhinal NA
RD_ST40TA 15.2471 4.179 15.2471 2.63e+01 51.0 0.01617 1.94e-06 0.80 2 Cortical Thickness Average of LeftMiddleTemporal NA
M_ST60TS 568.3201 171.561 568.3201 9.65e+02 51.0 0.01747 8.48e-07 0.65 2 Cortical Thickness Standard Deviation of LeftTemporalPole NA
De_M_ST45CV 591.1545 164.151 591.1545 1.02e+03 50.9 0.01672 1.34e-06 0.85 2 Volume (Cortical Parcellation) of LeftParsOpercularis -2.430M_ST45TA -0.075M_ST59TA -0.259M_ST45SA + 1.000M_ST45CV
De_M_ST52TA -248.6152 -489.171 -248.6152 -8.06e+00 50.4 0.00989 1.34e-04 0.40 2 Cortical Thickness Average of LeftPrecuneus + 1.000M_ST52TA -0.847M_ST59TA

3 Diagnosis MCI vs AD

3.0.1 the set

TrainFraction <- 0.60;

TADPOLECrossMRI <- subset(validBaselineTadpole,DX == "Dementia" | DX == "MCI")
table(TADPOLECrossMRI$DX)

Dementia MCI NL 244 711 0


TADPOLECrossMRI$DX <- 1*(as.character(TADPOLECrossMRI$DX) == "Dementia")
table(TADPOLECrossMRI$DX)

0 1 711 244

TADPOLECrossMRI$ADAS13 <- NULL
TADPOLECrossMRI$ADAS11 <- NULL
TADPOLECrossMRI$MMSE <- NULL
TADPOLECrossMRI$RAVLT_immediate <- NULL
TADPOLECrossMRI$RAVLT_learning <- NULL
TADPOLECrossMRI$RAVLT_perc_forgetting <- NULL
TADPOLECrossMRI$RAVLT_forgetting <- NULL
TADPOLECrossMRI$FAQ <- NULL

TADPOLE_Cases <- subset(TADPOLECrossMRI,DX==1)
TADPOLE_Controls <- subset(TADPOLECrossMRI,DX==0)
trainCasesSet <- sample(nrow(TADPOLE_Cases),nrow(TADPOLE_Cases)*TrainFraction)
trainControlSet <- sample(nrow(TADPOLE_Controls),nrow(TADPOLE_Controls)*TrainFraction)

TADPOLE_DX_TRAIN <- rbind(TADPOLE_Cases[trainCasesSet,],TADPOLE_Controls[trainControlSet,])
TADPOLE_DX_TEST <- TADPOLECrossMRI[!(rownames(TADPOLECrossMRI) %in% rownames(TADPOLE_DX_TRAIN)),]
table(TADPOLE_DX_TEST$DX)

0 1 285 98


par(op)

3.0.2 Learning

bDXml <- BSWiMS.model(DX~.,TADPOLE_DX_TRAIN,NumberofRepeats = 20)

[++++++-+++-+++++-++++++–++++-+++++-++++++-++++–++++-++-++++++-++++-++-+++++–+++++-+-++++-+-+++++++++-++++++++-++-+++++-++++++++–++++-+-++++-]………..

pander::pander(bDXml$bagging$Jaccard.SM)

0.0902



fs <- bDXml$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bDXml)
pander::pander(sm$coefficients)
  Estimate lower OR upper u.Accuracy r.Accuracy full.Accuracy u.AUC r.AUC full.AUC IDI NRI z.IDI z.NRI Delta.AUC Frequency
M_ST40TA -79.016 1.07e-40 4.83e-35 2.18e-29 0.661 0.630 0.717 0.655 0.631 0.718 0.1247 0.689 11.13 10.78 8.71e-02 0.65
M_ST32TA -30.317 3.08e-16 6.81e-14 1.51e-11 0.639 0.649 0.707 0.645 0.638 0.705 0.1144 0.622 10.34 9.62 6.70e-02 0.40
M_ST31TA -70.265 1.23e-36 3.05e-31 7.54e-26 0.636 0.678 0.728 0.626 0.681 0.731 0.0896 0.574 9.09 8.80 5.00e-02 0.50
M_ST24CV -20.188 3.20e-11 1.71e-09 9.12e-08 0.678 0.689 0.723 0.660 0.684 0.724 0.0807 0.554 8.64 8.51 3.97e-02 0.95
Hippocampus -13.711 5.93e-08 1.11e-06 2.08e-05 0.667 0.690 0.723 0.672 0.684 0.730 0.0787 0.549 8.64 8.41 4.61e-02 1.00
M_ST52CV -1.379 1.84e-01 2.52e-01 3.44e-01 0.616 0.646 0.679 0.602 0.635 0.685 0.0795 0.419 8.45 6.28 4.94e-02 0.10
M_ST32CV -14.298 2.01e-08 6.17e-07 1.90e-05 0.694 0.704 0.735 0.693 0.699 0.739 0.0710 0.518 8.11 7.84 4.00e-02 1.00
M_ST30SV 2.881 8.13e+00 1.78e+01 3.91e+01 0.651 0.686 0.700 0.652 0.682 0.705 0.0709 0.487 7.72 7.40 2.35e-02 0.90
M_ST40SA -0.832 3.54e-01 4.35e-01 5.35e-01 0.600 0.667 0.693 0.594 0.655 0.696 0.0626 0.469 7.54 7.06 4.14e-02 0.15
M_ST12SV -10.998 5.36e-07 1.67e-05 5.23e-04 0.666 0.692 0.717 0.671 0.693 0.722 0.0599 0.551 7.36 8.41 2.87e-02 0.90
M_ST40CV -10.650 9.62e-07 2.37e-05 5.84e-04 0.693 0.694 0.716 0.699 0.692 0.718 0.0570 0.439 7.10 6.60 2.55e-02 0.95
M_ST31CV -9.623 3.00e-06 6.62e-05 1.46e-03 0.653 0.697 0.724 0.643 0.698 0.730 0.0596 0.451 7.02 6.80 3.22e-02 0.90
M_ST24TA -24.833 6.09e-15 1.64e-11 4.42e-08 0.691 0.710 0.735 0.681 0.710 0.739 0.0547 0.522 7.02 7.92 2.86e-02 1.00
M_ST44CV -3.787 6.08e-03 2.27e-02 8.44e-02 0.617 0.681 0.709 0.618 0.673 0.708 0.0489 0.396 6.52 5.92 3.56e-02 0.20
M_ST60TA -5.852 4.15e-04 2.87e-03 1.99e-02 0.634 0.680 0.706 0.619 0.672 0.704 0.0471 0.456 6.49 6.92 3.23e-02 0.25
M_ST45TA 32.731 5.97e+07 1.64e+14 4.51e+20 0.582 0.682 0.712 0.570 0.678 0.708 0.0449 0.400 6.40 5.99 2.94e-02 0.40
M_ST55TS 115.895 1.13e+29 2.15e+50 4.08e+71 0.555 0.685 0.713 0.547 0.683 0.715 0.0439 0.457 6.19 6.89 3.17e-02 0.40
M_ST55SA -0.886 2.76e-01 4.12e-01 6.16e-01 0.598 0.687 0.701 0.597 0.683 0.696 0.0408 0.417 5.86 6.23 1.37e-02 0.30
M_ST32SA -2.990 9.67e-03 5.03e-02 2.61e-01 0.622 0.700 0.721 0.622 0.708 0.727 0.0380 0.408 5.64 6.10 1.96e-02 0.90
RD_ST31TA 0.846 1.49e+00 2.33e+00 3.65e+00 0.626 0.685 0.701 0.574 0.691 0.702 0.0369 0.285 5.54 4.31 1.13e-02 0.55
M_ST39CV 9.367 5.56e+01 1.17e+04 2.46e+06 0.563 0.711 0.729 0.562 0.716 0.734 0.0342 0.332 5.54 4.96 1.76e-02 0.65
M_ST24SA 2.887 3.23e+00 1.79e+01 9.97e+01 0.535 0.711 0.724 0.550 0.709 0.724 0.0323 0.283 5.51 4.19 1.54e-02 0.25
M_ST129TS 79.463 8.02e+17 3.24e+34 1.31e+51 0.605 0.704 0.714 0.580 0.701 0.715 0.0379 0.366 5.47 5.47 1.35e-02 0.70
M_ST46TS 107.131 2.05e+18 3.36e+46 5.51e+74 0.583 0.722 0.733 0.560 0.725 0.737 0.0320 0.322 5.36 4.78 1.25e-02 1.00
M_ST43TS 131.338 9.38e+24 1.09e+57 1.28e+89 0.575 0.702 0.717 0.553 0.702 0.720 0.0341 0.337 5.33 5.02 1.73e-02 0.90
M_ST60TS 65.901 2.55e+12 4.17e+28 6.83e+44 0.594 0.704 0.727 0.591 0.709 0.733 0.0308 0.358 5.31 5.33 2.36e-02 0.95
M_ST35SA -3.534 3.29e-03 2.92e-02 2.59e-01 0.566 0.707 0.732 0.581 0.711 0.736 0.0293 0.396 5.26 5.92 2.53e-02 0.95
M_ST59TA -2.806 1.02e-02 6.05e-02 3.59e-01 0.610 0.701 0.713 0.602 0.692 0.707 0.0329 0.196 5.24 2.88 1.52e-02 0.10
M_ST36TS 20.552 3.37e+03 8.43e+08 2.11e+14 0.559 0.697 0.715 0.531 0.687 0.707 0.0317 0.385 5.16 5.77 2.01e-02 0.15
M_ST62TA 3.333 2.35e+00 2.80e+01 3.34e+02 0.536 0.689 0.710 0.520 0.696 0.711 0.0276 0.280 5.07 4.13 1.47e-02 0.10
M_ST59CV -2.419 2.11e-02 8.90e-02 3.75e-01 0.651 0.705 0.711 0.649 0.697 0.709 0.0322 0.393 5.06 5.87 1.11e-02 0.20
M_ST26CV -4.445 1.04e-03 1.17e-02 1.32e-01 0.660 0.707 0.717 0.647 0.701 0.715 0.0307 0.336 5.02 5.01 1.40e-02 0.55
RD_ST44TA 0.503 1.18e+00 1.65e+00 2.32e+00 0.608 0.699 0.713 0.574 0.700 0.712 0.0281 0.301 4.93 4.51 1.28e-02 0.50
M_ST43TA 20.526 2.83e+02 8.21e+08 2.38e+15 0.552 0.696 0.715 0.541 0.694 0.715 0.0272 0.263 4.78 3.88 2.10e-02 0.25
M_ST14TA 3.715 3.48e+00 4.10e+01 4.84e+02 0.540 0.682 0.713 0.540 0.676 0.712 0.0270 0.292 4.76 4.32 3.66e-02 0.20
RD_ST52TA 1.696 1.76e+00 5.45e+00 1.69e+01 0.616 0.716 0.719 0.556 0.720 0.720 0.0281 0.220 4.74 3.31 -3.62e-05 0.75
M_ST54CV 1.300 1.47e+00 3.67e+00 9.14e+00 0.530 0.734 0.745 0.526 0.737 0.757 0.0219 0.242 4.63 3.57 2.04e-02 0.10
M_ST44TS -53.998 1.21e-41 3.54e-24 1.03e-06 0.541 0.705 0.715 0.542 0.702 0.717 0.0234 0.306 4.47 4.53 1.44e-02 0.55
pander::pander(bDXml$univariate[bDXml$selectedfeatures,])
  Name RName ZUni
M_ST32CV M_ST32CV M_ST32CV 9.01
M_ST24TA M_ST24TA M_ST24TA 9.11
M_ST46TS M_ST46TS M_ST46TS 2.82
M_ST30SV M_ST30SV M_ST30SV 8.41
M_ST32SA M_ST32SA M_ST32SA 6.46
Hippocampus Hippocampus Hippocampus 8.49
M_ST12SV M_ST12SV M_ST12SV 8.10
M_ST31CV M_ST31CV M_ST31CV 7.16
M_ST54CV M_ST54CV M_ST54CV 1.78
M_ST60TS M_ST60TS M_ST60TS 4.29
RD_ST31TA RD_ST31TA RD_ST31TA 4.55
M_ST40CV M_ST40CV M_ST40CV 7.85
M_ST39CV M_ST39CV M_ST39CV 2.60
M_ST24CV M_ST24CV M_ST24CV 7.76
RD_ST52TA RD_ST52TA RD_ST52TA 4.65
M_ST35CV M_ST35CV M_ST35CV 6.11
M_ST43TS M_ST43TS M_ST43TS 2.94
M_ST35SA M_ST35SA M_ST35SA 3.29
M_ST129TS M_ST129TS M_ST129TS 3.90
M_ST24SA M_ST24SA M_ST24SA 1.81
M_ST31TA M_ST31TA M_ST31TA 6.73
M_ST26CV M_ST26CV M_ST26CV 7.18
M_ST40TA M_ST40TA M_ST40TA 7.00
RD_ST44TA RD_ST44TA RD_ST44TA 3.73
M_ST56TS M_ST56TS M_ST56TS 3.07
M_ST45TA M_ST45TA M_ST45TA 3.22
M_ST32TA M_ST32TA M_ST32TA 7.04
M_ST44CV M_ST44CV M_ST44CV 6.34
M_ST44TS M_ST44TS M_ST44TS 1.41
M_ST59TA M_ST59TA M_ST59TA 6.44
RD_ST29SV RD_ST29SV RD_ST29SV 3.65
M_ST43TA M_ST43TA M_ST43TA 2.56
M_ST55SA M_ST55SA M_ST55SA 4.37
RD_ST55TA RD_ST55TA RD_ST55TA 3.01
M_ST40SA M_ST40SA M_ST40SA 4.50
M_ST60TA M_ST60TA M_ST60TA 5.72
M_ST59CV M_ST59CV M_ST59CV 6.65
M_ST55TS M_ST55TS M_ST55TS 1.42
M_ST14TA M_ST14TA M_ST14TA 1.67
M_ST26TA M_ST26TA M_ST26TA 6.91
M_ST62TA M_ST62TA M_ST62TA 2.33
M_ST52CV M_ST52CV M_ST52CV 6.53
M_ST36TS M_ST36TS M_ST36TS 1.62
M_ST55CV M_ST55CV M_ST55CV 6.18
M_ST23TA M_ST23TA M_ST23TA 2.49
M_ST31SA M_ST31SA M_ST31SA 3.88
M_ST58TA M_ST58TA M_ST58TA 6.62

prBin <- predictionStats_binary(cbind(TADPOLE_DX_TEST$DX,predict(bDXml,TADPOLE_DX_TEST)),"MCI vs Dementia")

MCI vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.821 0.775 0.867
pander::pander(prBin$accc)
est lower upper
0.734 0.686 0.777
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.255 0.209 0.305
pander::pander(prBin$sensitivity)
est lower upper
0.765 0.669 0.845
par(op)

plot(sm$coefficients$IDI,sm$coefficients$Delta.AUC)

plot(sm$coefficients$NRI,sm$coefficients$Delta.AUC)

par(op)
gplots::heatmap.2(log(100*bDXml$bagging$formulaNetwork+1),
                  trace = "none",
                  scale = "none",
                  mar = c(10,10),
                  col=rev(heat.colors(5)),
                  main = "formulaNetwork",
                  cexRow = 0.5,
                  cexCol = 0.5,
                  key.title=NA,
                  key.xlab="Spearman Correlation",
                  xlab="Feature", ylab="Feature")
par(op)



gplots::heatmap.2(log(100*bDXml$bagging$WformulaNetwork+1),
                  trace = "none",
                  scale = "none",
                  mar = c(10,10),
                  col=rev(heat.colors(5)),
                  main = "Wnetwork",
                  cexRow = 0.5,
                  cexCol = 0.5,
                  key.title=NA,
                  key.xlab="Spearman Correlation",
                  xlab="Feature", ylab="Feature")

par(op)

3.0.3 The formula network

cmax <- apply(bDXml$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]

adma <- bDXml$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=10*E(gr)$weight,
     vertex.size=10*cmax,
     vertex.label.cex=0.75,
     vertex.label.dist=0,
     main="MCI vs Dementia Diagnosis")

par(op)

3.0.4 MCI vs AD table


clusterFeatures <- fc$names

tableMCI_De <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "OR",
                                     "upper",
                                     "full.AUC",
                                     "Delta.AUC",
                                     "z.IDI",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableMCI_De$Cluster <- nugget[rownames(tableMCI_De)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableMCI_De$Description <- description[rownames(tableMCI_De)]
pander::pander(tableMCI_De)
  Estimate lower OR upper full.AUC Delta.AUC z.IDI Frequency Cluster Description
M_ST32CV -14.298 2.01e-08 6.17e-07 1.90e-05 0.739 4.00e-02 8.11 1.00 1 Volume (Cortical Parcellation) of LeftInferiorTemporal
M_ST24TA -24.833 6.09e-15 1.64e-11 4.42e-08 0.739 2.86e-02 7.02 1.00 1 Cortical Thickness Average of LeftEntorhinal
M_ST46TS 107.131 2.05e+18 3.36e+46 5.51e+74 0.737 1.25e-02 5.36 1.00 1 Cortical Thickness Standard Deviation of LeftParsOrbitalis
M_ST30SV 2.881 8.13e+00 1.78e+01 3.91e+01 0.705 2.35e-02 7.72 0.90 2 Volume (WM Parcellation) of LeftInferiorLateralVentricle
M_ST32SA -2.990 9.67e-03 5.03e-02 2.61e-01 0.727 1.96e-02 5.64 0.90 2 Surface Area of LeftInferiorTemporal
Hippocampus -13.711 5.93e-08 1.11e-06 2.08e-05 0.730 4.61e-02 8.64 1.00 3 NA
M_ST12SV -10.998 5.36e-07 1.67e-05 5.23e-04 0.722 2.87e-02 7.36 0.90 2 Volume (WM Parcellation) of LeftAmygdala
M_ST31CV -9.623 3.00e-06 6.62e-05 1.46e-03 0.730 3.22e-02 7.02 0.90 3 Volume (Cortical Parcellation) of LeftInferiorParietal
M_ST60TS 65.901 2.55e+12 4.17e+28 6.83e+44 0.733 2.36e-02 5.31 0.95 3 Cortical Thickness Standard Deviation of LeftTemporalPole
RD_ST31TA 0.846 1.49e+00 2.33e+00 3.65e+00 0.702 1.13e-02 5.54 0.55 2 Cortical Thickness Average of LeftInferiorParietal
M_ST40CV -10.650 9.62e-07 2.37e-05 5.84e-04 0.718 2.55e-02 7.10 0.95 4 Volume (Cortical Parcellation) of LeftMiddleTemporal
M_ST39CV 9.367 5.56e+01 1.17e+04 2.46e+06 0.734 1.76e-02 5.54 0.65 2 Volume (Cortical Parcellation) of LeftMedialOrbitofrontal
M_ST24CV -20.188 3.20e-11 1.71e-09 9.12e-08 0.724 3.97e-02 8.64 0.95 4 Volume (Cortical Parcellation) of LeftEntorhinal
RD_ST52TA 1.696 1.76e+00 5.45e+00 1.69e+01 0.720 -3.62e-05 4.74 0.75 2 Cortical Thickness Average of LeftPrecuneus
M_ST43TS 131.338 9.38e+24 1.09e+57 1.28e+89 0.720 1.73e-02 5.33 0.90 4 Cortical Thickness Standard Deviation of LeftParacentral
M_ST35SA -3.534 3.29e-03 2.92e-02 2.59e-01 0.736 2.53e-02 5.26 0.95 3 Surface Area of LeftLateralOccipital
M_ST129TS 79.463 8.02e+17 3.24e+34 1.31e+51 0.715 1.35e-02 5.47 0.70 5 Cortical Thickness Standard Deviation of LeftInsula
M_ST24SA 2.887 3.23e+00 1.79e+01 9.97e+01 0.724 1.54e-02 5.51 0.25 4 Surface Area of LeftEntorhinal
M_ST31TA -70.265 1.23e-36 3.05e-31 7.54e-26 0.731 5.00e-02 9.09 0.50 2 Cortical Thickness Average of LeftInferiorParietal
M_ST26CV -4.445 1.04e-03 1.17e-02 1.32e-01 0.715 1.40e-02 5.02 0.55 5 Volume (Cortical Parcellation) of LeftFusiform
M_ST40TA -79.016 1.07e-40 4.83e-35 2.18e-29 0.718 8.71e-02 11.13 0.65 5 Cortical Thickness Average of LeftMiddleTemporal
RD_ST44TA 0.503 1.18e+00 1.65e+00 2.32e+00 0.712 1.28e-02 4.93 0.50 5 Cortical Thickness Average of LeftParahippocampal
M_ST45TA 32.731 5.97e+07 1.64e+14 4.51e+20 0.708 2.94e-02 6.40 0.40 5 Cortical Thickness Average of LeftParsOpercularis
M_ST32TA -30.317 3.08e-16 6.81e-14 1.51e-11 0.705 6.70e-02 10.34 0.40 5 Cortical Thickness Average of LeftInferiorTemporal
M_ST44TS -53.998 1.21e-41 3.54e-24 1.03e-06 0.717 1.44e-02 4.47 0.55 5 Cortical Thickness Standard Deviation of LeftParahippocampal
M_ST43TA 20.526 2.83e+02 8.21e+08 2.38e+15 0.715 2.10e-02 4.78 0.25 2 Cortical Thickness Average of LeftParacentral
M_ST55SA -0.886 2.76e-01 4.12e-01 6.16e-01 0.696 1.37e-02 5.86 0.30 5 Surface Area of LeftRostralMiddleFrontal
M_ST60TA -5.852 4.15e-04 2.87e-03 1.99e-02 0.704 3.23e-02 6.49 0.25 6 Cortical Thickness Average of LeftTemporalPole
M_ST55TS 115.895 1.13e+29 2.15e+50 4.08e+71 0.715 3.17e-02 6.19 0.40 5 Cortical Thickness Standard Deviation of LeftRostralMiddleFrontal

3.1 Decorrelating the sets


TADPOLE_DX_TRAIND <- GDSTMDecorrelation(TADPOLE_DX_TRAIN,Outcome="DX",
                                        thr=0.6,
                                        type="RLM",
                                        method="spearman",
                                        verbose = TRUE)
#> 
#>  Included: 200 , Uni p: 0.0118249 To Outcome: 93 , Base: 5 , In Included: 5 , Base Cor: 14 
#> 1 , Top: 40 < 0.6 >( 3 )[ 1 : 0 : 0.594 ]( 39 , 89 , 0 ),<>Tot Used: 128 , Added: 89 , Zero Std: 0 , Max Cor: 0.9882019 
#> 2 , Top: 26 < 0.6 >[ FALSE ]( 1 )[ 1 : 0 : 0.594 ]( 22 , 32 , 39 ),<>Tot Used: 147 , Added: 32 , Zero Std: 0 , Max Cor: 0.9458602 
#> 3 , Top: 16 < 0.6 >( 1 )[ 1 : 0 : 0.594 ]( 15 , 18 , 58 ),<>Tot Used: 154 , Added: 18 , Zero Std: 0 , Max Cor: 0.8804423 
#> 4 , Top: 12 < 0.6 >( 2 )[ 1 : 0 : 0.594 ]( 9 , 10 , 68 ),<>Tot Used: 156 , Added: 10 , Zero Std: 0 , Max Cor: 0.891374 
#> 5 , Top: 8 < 0.6 >( 1 )[ 1 : 0 : 0 ]( 8 , 11 , 75 ),<>Tot Used: 158 , Added: 11 , Zero Std: 0 , Max Cor: 0.8757232 
#> 6 , Top: 4 < 0.6 >[ TRUE ]( 1 )[ 1 : 0 : 0 ]( 4 , 4 , 78 ),<>Tot Used: 158 , Added: 4 , Zero Std: 0 , Max Cor: 0.6082068 
#> 7 , Top: 1 < 0.6 >[ FALSE ]( 1 )[ 1 : 0 : 0.6 ]( 1 , 1 , 82 ),<>Tot Used: 158 , Added: 1 , Zero Std: 0 , Max Cor: 0.5990138 
#> [ 8 ], 0.5979913 . Cor to Base: 102 , ABase: 76
TADPOLE_DX_TESTD <-  predictDecorrelate(TADPOLE_DX_TRAIND,TADPOLE_DX_TEST)

3.1.1 Decorrelated ML

bDXmlD <- BSWiMS.model(DX~.,TADPOLE_DX_TRAIND,NumberofRepeats = 20)

[+++++-+++-+++-+++–+++++-++++-++–++++-++++-+++-+-+++++-++++-++++–+++—++++–+++–++++-++++-+++-+++-]…….

pander::pander(bDXmlD$bagging$Jaccard.SM)

0.14


fs <- bDXmlD$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bDXmlD)
pander::pander(sm$coefficients)
  Estimate lower OR upper u.Accuracy r.Accuracy full.Accuracy u.AUC r.AUC full.AUC IDI NRI z.IDI z.NRI Delta.AUC Frequency
Ba_M_ST24TA -82.8668 8.56e-42 1.03e-36 1.23e-31 0.693 0.672 0.729 0.682 0.659 0.725 0.1410 0.728 11.78 11.44 0.06618 1.00
Ba_M_ST59TA -165.5492 4.89e-85 1.27e-72 3.29e-60 0.609 0.665 0.731 0.605 0.659 0.729 0.1186 0.567 10.62 8.69 0.07078 1.00
M_ST49CV -9.7934 5.11e-06 5.58e-05 6.10e-04 0.594 0.661 0.698 0.597 0.644 0.700 0.0828 0.489 8.66 7.41 0.05612 0.65
M_ST35CV -12.4938 1.05e-07 3.75e-06 1.34e-04 0.631 0.682 0.714 0.636 0.677 0.716 0.0650 0.462 7.67 6.98 0.03935 1.00
De_M_ST30SV 8.5509 2.92e+02 5.17e+03 9.15e+04 0.632 0.695 0.721 0.630 0.695 0.721 0.0568 0.483 7.15 7.30 0.02657 1.00
De_M_ST49TA 34.0464 2.74e+08 6.11e+14 1.36e+21 0.543 0.665 0.698 0.554 0.657 0.698 0.0460 0.369 6.48 5.50 0.04106 0.20
De_M_ST32TA -67.7685 6.08e-43 3.70e-30 2.26e-17 0.568 0.699 0.734 0.573 0.699 0.734 0.0409 0.355 6.37 5.29 0.03480 0.45
Ba_Ventricles 0.1215 1.07e+00 1.13e+00 1.19e+00 0.617 0.668 0.686 0.619 0.662 0.685 0.0389 0.381 5.67 5.70 0.02302 0.20
Ba_M_ST35SA -4.7798 8.65e-04 8.40e-03 8.15e-02 0.565 0.717 0.732 0.580 0.711 0.730 0.0356 0.440 5.65 6.62 0.01823 0.65
De_M_ST62TA 44.4839 1.42e+08 2.08e+19 3.07e+30 0.580 0.691 0.716 0.584 0.691 0.715 0.0358 0.412 5.65 6.16 0.02349 0.95
De_M_ST39TA -3.9097 2.97e-03 2.00e-02 1.35e-01 0.584 0.669 0.688 0.593 0.660 0.683 0.0379 0.318 5.59 4.73 0.02295 0.20
De_M_ST23TA 13.8805 3.78e+02 1.07e+06 3.01e+09 0.570 0.684 0.694 0.564 0.683 0.696 0.0362 0.304 5.58 4.50 0.01340 0.10
Ba_M_ST46TS 188.6648 1.26e+33 8.63e+81 5.89e+130 0.588 0.715 0.736 0.563 0.716 0.735 0.0367 0.336 5.56 5.00 0.01879 0.65
RD_ST57TA 0.2686 1.09e+00 1.31e+00 1.56e+00 0.624 0.696 0.723 0.588 0.684 0.711 0.0363 0.370 5.44 5.60 0.02640 0.10
Ba_M_ST129TS 12.1062 7.31e+01 1.81e+05 4.48e+08 0.605 0.671 0.690 0.578 0.673 0.699 0.0343 0.317 5.41 4.71 0.02510 0.10
Ba_M_ST21SV 3.1103 3.51e+00 2.24e+01 1.43e+02 0.598 0.668 0.689 0.603 0.668 0.693 0.0325 0.239 5.38 3.52 0.02485 0.45
De_M_ST55SA -1.1207 1.53e-01 3.26e-01 6.95e-01 0.597 0.708 0.723 0.598 0.703 0.723 0.0339 0.409 5.28 6.11 0.01968 0.30
De_M_ST26TA -23.6746 2.26e-17 5.23e-11 1.21e-04 0.550 0.707 0.732 0.544 0.702 0.730 0.0302 0.269 5.27 3.97 0.02740 0.15
Ba_M_ST32SA -7.0635 1.18e-05 8.56e-04 6.19e-02 0.619 0.724 0.730 0.622 0.721 0.726 0.0339 0.383 5.24 5.71 0.00523 1.00
De_M_ST45TA 161.7732 9.47e+28 1.81e+70 3.45e+111 0.600 0.724 0.735 0.593 0.720 0.730 0.0323 0.405 5.20 6.06 0.01010 0.95
RD_ST44TA 1.5837 1.73e+00 4.87e+00 1.37e+01 0.606 0.722 0.735 0.573 0.722 0.732 0.0313 0.332 5.15 4.99 0.01073 0.65
RD_ST29SV 0.1569 1.06e+00 1.17e+00 1.30e+00 0.635 0.676 0.683 0.589 0.679 0.692 0.0292 0.375 5.14 5.70 0.01282 0.10
M_ST60TS 76.5383 1.12e+13 1.74e+33 2.71e+53 0.595 0.694 0.711 0.592 0.693 0.709 0.0292 0.345 5.11 5.12 0.01634 1.00
RD_ST55TA 1.2573 1.55e+00 3.52e+00 7.96e+00 0.606 0.718 0.742 0.561 0.716 0.740 0.0271 0.328 5.02 4.95 0.02391 0.20
De_M_ST11SV -110.0996 2.02e-70 1.53e-48 1.16e-26 0.634 0.709 0.721 0.624 0.710 0.719 0.0310 0.310 4.92 4.61 0.00926 0.95
RD_ST24TA 0.0136 1.00e+00 1.01e+00 1.02e+00 0.621 0.659 0.680 0.572 0.662 0.676 0.0244 0.169 4.68 2.53 0.01358 0.10
De_M_ST31SA -1.6079 6.59e-02 2.00e-01 6.09e-01 0.557 0.720 0.744 0.566 0.718 0.742 0.0248 0.276 4.66 4.08 0.02336 0.25
RD_ST52TA 4.0332 3.45e+00 5.64e+01 9.25e+02 0.616 0.715 0.726 0.557 0.718 0.722 0.0275 0.193 4.64 2.91 0.00335 0.90
De_M_ST43TA 87.0517 1.81e+12 6.40e+37 2.27e+63 0.574 0.716 0.725 0.577 0.713 0.724 0.0267 0.353 4.57 5.25 0.01109 0.90
RD_ST31TA 0.2559 1.09e+00 1.29e+00 1.54e+00 0.627 0.679 0.701 0.575 0.681 0.694 0.0210 0.156 4.05 2.35 0.01306 0.25
Ba_M_ST43TS 6.9809 1.59e+00 1.08e+03 7.28e+05 0.574 0.671 0.690 0.551 0.669 0.688 0.0198 0.341 3.85 5.07 0.01881 0.10
De_RD_ST52CV 2.3747 1.44e+00 1.07e+01 8.01e+01 0.583 0.684 0.697 0.560 0.688 0.698 0.0153 0.157 3.60 2.32 0.00993 0.75
De_M_ST29SV 125.1641 2.56e+01 2.28e+54 2.03e+107 0.469 0.723 0.730 0.555 0.720 0.727 0.0142 0.555 3.53 8.99 0.00698 0.95
pander::pander(bDXmlD$univariate[bDXmlD$selectedfeatures,])
  Name RName ZUni
Ba_M_ST24TA Ba_M_ST24TA Ba_M_ST24TA 9.11
Ba_M_ST32SA Ba_M_ST32SA Ba_M_ST32SA 6.46
RD_ST55TA RD_ST55TA RD_ST55TA 3.01
RD_ST52TA RD_ST52TA RD_ST52TA 4.65
De_M_ST30SV De_M_ST30SV De_M_ST30SV 6.64
De_M_ST43TA De_M_ST43TA De_M_ST43TA 3.71
De_M_ST45TA De_M_ST45TA De_M_ST45TA 3.77
De_M_ST11SV De_M_ST11SV De_M_ST11SV 6.41
De_M_ST129CV De_M_ST129CV De_M_ST129CV 2.62
De_M_ST29SV De_M_ST29SV De_M_ST29SV 1.97
M_ST35CV M_ST35CV M_ST35CV 6.11
RD_ST57TA RD_ST57TA RD_ST57TA 3.88
Ba_M_ST59TA Ba_M_ST59TA Ba_M_ST59TA 6.44
De_M_ST62TA De_M_ST62TA De_M_ST62TA 3.50
M_ST60TS M_ST60TS M_ST60TS 4.29
Ba_M_ST35SA Ba_M_ST35SA Ba_M_ST35SA 3.29
Ba_RD_ST52SA Ba_RD_ST52SA Ba_RD_ST52SA 1.29
De_M_ST23TA De_M_ST23TA De_M_ST23TA 2.73
Ba_M_ST46TS Ba_M_ST46TS Ba_M_ST46TS 2.82
RD_ST44TA RD_ST44TA RD_ST44TA 3.73
De_M_ST55SA De_M_ST55SA De_M_ST55SA 4.37
De_M_ST31SA De_M_ST31SA De_M_ST31SA 3.88
M_ST49CV M_ST49CV M_ST49CV 5.26
De_M_ST26TA De_M_ST26TA De_M_ST26TA 3.05
De_M_ST32TA De_M_ST32TA De_M_ST32TA 3.12
De_RD_ST52CV De_RD_ST52CV De_RD_ST52CV 3.97
Ba_M_ST21SV Ba_M_ST21SV Ba_M_ST21SV 5.38
RD_ST29SV RD_ST29SV RD_ST29SV 3.65
Ba_M_ST129TS Ba_M_ST129TS Ba_M_ST129TS 3.90
Ba_Ventricles Ba_Ventricles Ba_Ventricles 5.44
De_M_ST39TA De_M_ST39TA De_M_ST39TA 4.66
De_M_ST49TA De_M_ST49TA De_M_ST49TA 1.40
RD_ST24TA RD_ST24TA RD_ST24TA 4.32
Ba_M_ST43TS Ba_M_ST43TS Ba_M_ST43TS 2.94
RD_ST31TA RD_ST31TA RD_ST31TA 4.55
De_M_ST47TA De_M_ST47TA De_M_ST47TA 3.19
De_M_ST59CV De_M_ST59CV De_M_ST59CV 3.73
De_M_ST36TA De_M_ST36TA De_M_ST36TA 2.52

prBin <- predictionStats_binary(cbind(TADPOLE_DX_TESTD$DX,predict(bDXmlD,TADPOLE_DX_TESTD)),"MCI vs Dementia")

MCI vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.804 0.755 0.853
pander::pander(prBin$accc)
est lower upper
0.736 0.689 0.78
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.27 0.22 0.326
pander::pander(prBin$sensitivity)
est lower upper
0.714 0.614 0.801
par(op)

3.1.2 The formula network

cmax <- apply(bDXmlD$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]

adma <- bDXmlD$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=10*E(gr)$weight,
     vertex.size=10*cmax,
     vertex.label.cex=0.75,
     vertex.label.dist=0,
     main="MCI vs Dementia Diagnosis")

par(op)

3.1.3 Decorrelated MCI vs AD table


clusterFeatures <- fc$names

tableMCI_DeD <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "OR",
                                     "upper",
                                     "full.AUC",
                                     "Delta.AUC",
                                     "z.IDI",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableMCI_DeD$Cluster <- nugget[rownames(tableMCI_DeD)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
rnames <- str_replace_all(rnames,"Ba_","")
rnames <- str_replace_all(rnames,"De_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableMCI_DeD$Description <- description[rownames(tableMCI_DeD)]



## Getting the decorrelation formula
dc <- getDerivedCoefficients(TADPOLE_DX_TRAIND)
decornames <- rownames(sm$coefficients)

deNames_in_dc <- decornames[decornames %in% names(dc)]
theDeFormulas <- dc[deNames_in_dc]
deFromula <- character(length(theDeFormulas))
names(deFromula) <- names(theDeFormulas)
for (dx in names(deFromula))
{
  coef <- theDeFormulas[[dx]]
  cname <- names(theDeFormulas[[dx]])
  names(cname) <- cname
  for (cf in names(coef))
  {
    if (cf != dx)
    {
      if (coef[cf]>0)
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("+ %5.3f*%s",coef[cf],cname[cf]))
      }
      else
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("%5.3f*%s",coef[cf],cname[cf]))
      }
    }
  }
}

tableMCI_DeD$DecorFormula <- deFromula[rownames(tableMCI_DeD)]



pander::pander(tableMCI_DeD)
  Estimate lower OR upper full.AUC Delta.AUC z.IDI Frequency Cluster Description DecorFormula
Ba_M_ST24TA -82.867 8.56e-42 1.03e-36 1.23e-31 0.725 0.06618 11.78 1.00 1 Cortical Thickness Average of LeftEntorhinal NA
Ba_M_ST32SA -7.063 1.18e-05 8.56e-04 6.19e-02 0.726 0.00523 5.24 1.00 1 Surface Area of LeftInferiorTemporal NA
RD_ST52TA 4.033 3.45e+00 5.64e+01 9.25e+02 0.722 0.00335 4.64 0.90 1 Cortical Thickness Average of LeftPrecuneus NA
De_M_ST30SV 8.551 2.92e+02 5.17e+03 9.15e+04 0.721 0.02657 7.15 1.00 2 Volume (WM Parcellation) of LeftInferiorLateralVentricle -0.331Ventricles + 1.000M_ST30SV
De_M_ST43TA 87.052 1.81e+12 6.40e+37 2.27e+63 0.724 0.01109 4.57 0.90 1 Cortical Thickness Average of LeftParacentral + 1.000M_ST43TA -0.792M_ST59TA
De_M_ST45TA 161.773 9.47e+28 1.81e+70 3.45e+111 0.730 0.01010 5.20 0.95 1 Cortical Thickness Average of LeftParsOpercularis + 1.000M_ST45TA -0.733M_ST59TA
De_M_ST11SV -110.100 2.02e-70 1.53e-48 1.16e-26 0.719 0.00926 4.92 0.95 2 Volume (WM Parcellation) of LeftAccumbensArea + 0.000ICV + 1.000M_ST11SV
De_M_ST29SV 125.164 2.56e+01 2.28e+54 2.03e+107 0.727 0.00698 3.53 0.95 2 Volume (WM Parcellation) of LeftHippocampus -0.794Hippocampus -0.007M_ST24TA + 1.000*M_ST29SV
M_ST35CV -12.494 1.05e-07 3.75e-06 1.34e-04 0.716 0.03935 7.67 1.00 2 Volume (Cortical Parcellation) of LeftLateralOccipital NA
Ba_M_ST59TA -165.549 4.89e-85 1.27e-72 3.29e-60 0.729 0.07078 10.62 1.00 3 Cortical Thickness Average of LeftSupramarginal NA
De_M_ST62TA 44.484 1.42e+08 2.08e+19 3.07e+30 0.715 0.02349 5.65 0.95 2 Cortical Thickness Average of LeftTransverseTemporal -0.910M_ST59TA + 1.000M_ST62TA
M_ST60TS 76.538 1.12e+13 1.74e+33 2.71e+53 0.709 0.01634 5.11 1.00 2 Cortical Thickness Standard Deviation of LeftTemporalPole NA
Ba_M_ST35SA -4.780 8.65e-04 8.40e-03 8.15e-02 0.730 0.01823 5.65 0.65 3 Surface Area of LeftLateralOccipital NA
Ba_M_ST46TS 188.665 1.26e+33 8.63e+81 5.89e+130 0.735 0.01879 5.56 0.65 3 Cortical Thickness Standard Deviation of LeftParsOrbitalis NA
RD_ST44TA 1.584 1.73e+00 4.87e+00 1.37e+01 0.732 0.01073 5.15 0.65 3 Cortical Thickness Average of LeftParahippocampal NA
De_M_ST55SA -1.121 1.53e-01 3.26e-01 6.95e-01 0.723 0.01968 5.28 0.30 3 Surface Area of LeftRostralMiddleFrontal NA
De_M_ST31SA -1.608 6.59e-02 2.00e-01 6.09e-01 0.742 0.02336 4.66 0.25 3 Surface Area of LeftInferiorParietal NA
M_ST49CV -9.793 5.11e-06 5.58e-05 6.10e-04 0.700 0.05612 8.66 0.65 4 Volume (Cortical Parcellation) of LeftPostcentral NA
De_M_ST32TA -67.768 6.08e-43 3.70e-30 2.26e-17 0.734 0.03480 6.37 0.45 3 Cortical Thickness Average of LeftInferiorTemporal + 1.000M_ST32TA -0.841M_ST59TA
De_RD_ST52CV 2.375 1.44e+00 1.07e+01 8.01e+01 0.698 0.00993 3.60 0.75 4 Volume (Cortical Parcellation) of LeftPrecuneus -0.472RD_ST52SA + 1.000RD_ST52CV
Ba_M_ST21SV 3.110 3.51e+00 2.24e+01 1.43e+02 0.693 0.02485 5.38 0.45 4 Volume (WM Parcellation) of LeftChoroidPlexus NA
RD_ST31TA 0.256 1.09e+00 1.29e+00 1.54e+00 0.694 0.01306 4.05 0.25 5 Cortical Thickness Average of LeftInferiorParietal NA

4 Diagnosis NL vs AD

4.0.1 the set

TrainFraction <- 0.60;

table(validBaselineTadpole$DX)

Dementia MCI NL 244 711 452


TADPOLECrossMRI <- subset(validBaselineTadpole,DX == "Dementia" | DX == "NL")
table(TADPOLECrossMRI$DX)

Dementia MCI NL 244 0 452


TADPOLECrossMRI$DX <- 1*(as.character(TADPOLECrossMRI$DX) == "Dementia")
table(TADPOLECrossMRI$DX)

0 1 452 244

TADPOLECrossMRI$ADAS13 <- NULL
TADPOLECrossMRI$ADAS11 <- NULL
TADPOLECrossMRI$MMSE <- NULL
TADPOLECrossMRI$RAVLT_immediate <- NULL
TADPOLECrossMRI$RAVLT_learning <- NULL
TADPOLECrossMRI$RAVLT_perc_forgetting <- NULL
TADPOLECrossMRI$RAVLT_forgetting <- NULL
TADPOLECrossMRI$FAQ <- NULL

TADPOLE_Cases <- subset(TADPOLECrossMRI,DX==1)
TADPOLE_Controls <- subset(TADPOLECrossMRI,DX==0)
trainCasesSet <- sample(nrow(TADPOLE_Cases),nrow(TADPOLE_Cases)*TrainFraction)
trainControlSet <- sample(nrow(TADPOLE_Controls),nrow(TADPOLE_Controls)*TrainFraction)

TADPOLE_DX_NLDE_TRAIN <- rbind(TADPOLE_Cases[trainCasesSet,],TADPOLE_Controls[trainControlSet,])
TADPOLE_DX_NLDE_TEST <- TADPOLECrossMRI[!(rownames(TADPOLECrossMRI) %in% rownames(TADPOLE_DX_NLDE_TRAIN)),]


pander::pander(table(TADPOLE_DX_NLDE_TRAIN$DX))
0 1
271 146
pander::pander(table(TADPOLE_DX_NLDE_TEST$DX))
0 1
181 98


par(op)

4.0.2 Learning

bDXmlNLDE <- BSWiMS.model(DX~.,TADPOLE_DX_NLDE_TRAIN,NumberofRepeats = 20)

[++-+++-+++-++–+++-++-+++-++-+++-+++-++-++-++–+++-++-++—+++-++–++-++–]….

pander::pander(bDXmlNLDE$bagging$Jaccard.SM)

0.195



fs <- bDXmlNLDE$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bDXmlNLDE)
pander::pander(sm$coefficients)
  Estimate lower OR upper u.Accuracy r.Accuracy full.Accuracy u.AUC r.AUC full.AUC IDI NRI z.IDI z.NRI Delta.AUC Frequency
M_ST24CV -126.03 5.06e-66 1.84e-55 6.68e-45 0.836 0.851 0.900 0.829 0.848 0.896 0.1253 1.007 9.09 13.82 0.04885 1.00
M_ST51TA 324.67 9.53e+92 1.01e+141 1.07e+189 0.607 0.886 0.918 0.600 0.883 0.916 0.0831 0.824 7.30 10.78 0.03333 0.85
M_ST24TA -153.90 6.39e-92 1.45e-67 3.29e-43 0.851 0.892 0.917 0.843 0.891 0.915 0.0769 0.790 6.96 10.40 0.02455 1.00
M_ST31TA -212.64 5.58e-133 4.47e-93 3.58e-53 0.745 0.891 0.916 0.737 0.887 0.914 0.0757 0.666 6.89 8.71 0.02753 0.55
M_ST40TA -207.63 4.70e-123 6.70e-91 9.57e-59 0.787 0.865 0.891 0.780 0.864 0.888 0.0756 0.803 6.72 10.72 0.02418 0.50
Hippocampus -58.83 1.17e-38 2.83e-26 6.84e-14 0.840 0.896 0.917 0.839 0.893 0.915 0.0577 0.754 5.84 9.72 0.02196 1.00
M_ST45TA 162.32 1.76e+44 3.13e+70 5.57e+96 0.660 0.866 0.890 0.657 0.867 0.889 0.0574 0.785 5.79 10.16 0.02181 0.35
M_ST30SV 9.76 6.24e+01 1.73e+04 4.79e+06 0.781 0.874 0.891 0.778 0.872 0.888 0.0475 0.640 5.42 8.17 0.01592 0.40
M_ST12SV -99.35 3.37e-62 7.11e-44 1.50e-25 0.802 0.883 0.900 0.796 0.879 0.897 0.0521 0.622 5.39 7.94 0.01839 0.95
M_ST36CV 41.51 5.35e+06 1.07e+18 2.12e+29 0.600 0.885 0.902 0.595 0.881 0.898 0.0412 0.577 5.12 7.11 0.01678 0.55
M_ST39CV 31.34 1.34e+05 4.09e+13 1.25e+22 0.595 0.880 0.897 0.594 0.876 0.894 0.0416 0.395 5.02 4.75 0.01809 0.60
M_ST31CV -21.05 4.55e-16 7.24e-10 1.15e-03 0.746 0.895 0.914 0.735 0.891 0.912 0.0417 0.661 4.91 8.27 0.02055 0.35
M_ST32TA -59.88 6.78e-40 9.85e-27 1.43e-13 0.810 0.877 0.893 0.801 0.872 0.889 0.0380 0.548 4.80 6.79 0.01766 0.40
M_ST40CV -33.71 2.01e-25 2.29e-15 2.60e-05 0.763 0.889 0.906 0.762 0.885 0.903 0.0398 0.567 4.79 7.12 0.01798 0.65
M_ST15TA -111.39 6.38e-84 4.20e-49 2.77e-14 0.708 0.898 0.911 0.703 0.896 0.911 0.0342 0.448 4.46 5.43 0.01467 0.30
M_ST32CV -30.61 2.31e-23 5.09e-14 1.12e-04 0.769 0.876 0.890 0.765 0.874 0.886 0.0402 0.712 4.38 9.14 0.01251 0.60
M_ST32SA -1.63 4.63e-02 1.96e-01 8.30e-01 0.672 0.865 0.880 0.673 0.863 0.881 0.0311 0.534 4.24 6.52 0.01734 0.10
M_ST129CV 7.45 5.89e+00 1.73e+03 5.07e+05 0.595 0.889 0.901 0.602 0.883 0.898 0.0311 0.357 4.24 4.24 0.01536 0.10
M_ST24SA 17.83 1.47e+01 5.56e+07 2.10e+14 0.588 0.892 0.904 0.595 0.888 0.900 0.0287 0.572 4.14 7.04 0.01248 0.45
M_ST13CV -7.36 1.05e-06 6.37e-04 3.87e-01 0.723 0.875 0.890 0.727 0.874 0.888 0.0262 0.739 4.09 9.43 0.01450 0.15
RD_ST57TA 5.10 2.67e+00 1.64e+02 1.00e+04 0.635 0.888 0.900 0.604 0.883 0.897 0.0260 0.330 4.01 3.97 0.01429 0.45
RD_ST29SV 3.90 2.38e+00 4.94e+01 1.02e+03 0.674 0.873 0.888 0.655 0.869 0.887 0.0319 0.749 3.99 9.60 0.01862 0.25
RD_ST32TA 4.64 1.49e+00 1.04e+02 7.25e+03 0.683 0.908 0.911 0.656 0.906 0.909 0.0282 0.585 3.56 7.36 0.00294 0.80
RD_ST55TA 3.07 1.38e+00 2.15e+01 3.35e+02 0.608 0.893 0.904 0.585 0.889 0.902 0.0206 0.417 3.46 5.08 0.01329 0.25
M_ST15CV -6.86 1.15e-06 1.05e-03 9.54e-01 0.643 0.890 0.892 0.644 0.886 0.889 0.0189 0.448 2.94 5.57 0.00217 0.20
pander::pander(bDXmlNLDE$univariate[bDXmlNLDE$selectedfeatures,])
  Name RName ZUni
M_ST24TA M_ST24TA M_ST24TA 20.33
Hippocampus Hippocampus Hippocampus 19.17
RD_ST32TA RD_ST32TA RD_ST32TA 7.38
M_ST51TA M_ST51TA M_ST51TA 5.93
M_ST13SA M_ST13SA M_ST13SA 4.55
M_ST31TA M_ST31TA M_ST31TA 12.01
M_ST24CV M_ST24CV M_ST24CV 18.01
ST3SV ST3SV ST3SV 6.52
M_ST24SA M_ST24SA M_ST24SA 4.64
M_ST40CV M_ST40CV M_ST40CV 14.07
M_ST31CV M_ST31CV M_ST31CV 11.24
M_ST12SV M_ST12SV M_ST12SV 16.05
M_ST15TA M_ST15TA M_ST15TA 10.18
M_ST32TA M_ST32TA M_ST32TA 14.58
M_ST129TA M_ST129TA M_ST129TA 7.11
M_ST54CV M_ST54CV M_ST54CV 3.15
RD_ST57TA RD_ST57TA RD_ST57TA 5.39
M_ST36CV M_ST36CV M_ST36CV 5.52
M_ST32CV M_ST32CV M_ST32CV 14.59
M_ST39CV M_ST39CV M_ST39CV 4.65
M_ST129CV M_ST129CV M_ST129CV 5.40
M_ST30SV M_ST30SV M_ST30SV 13.99
M_ST60SA M_ST60SA M_ST60SA 2.93
M_ST40TA M_ST40TA M_ST40TA 14.19
RD_ST55TA RD_ST55TA RD_ST55TA 3.46
RD_ST29SV RD_ST29SV RD_ST29SV 6.99
M_ST24TS M_ST24TS M_ST24TS 5.43
M_ST32SA M_ST32SA M_ST32SA 7.95
M_ST45TA M_ST45TA M_ST45TA 6.90
M_ST15CV M_ST15CV M_ST15CV 7.45
ST127SV ST127SV ST127SV 5.88
M_ST32TS M_ST32TS M_ST32TS 1.66
M_ST23CV M_ST23CV M_ST23CV 2.51
M_ST52CV M_ST52CV M_ST52CV 9.63
M_ST13CV M_ST13CV M_ST13CV 10.07

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TEST$DX,predict(bDXmlNLDE,TADPOLE_DX_NLDE_TEST)),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.938 0.907 0.97
pander::pander(prBin$accc)
est lower upper
0.864 0.818 0.902
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.146 0.101 0.19
pander::pander(prBin$sensitivity)
est lower upper
0.816 0.725 0.887
par(op)

4.0.3 The formula network

cmax <- apply(bDXmlNLDE$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]

adma <- bDXmlNLDE$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=10*E(gr)$weight,
     vertex.size=10*cmax,
     vertex.label.cex=0.75,
     vertex.label.dist=0,
     main="NL vs Dementia Diagnosis")

par(op)

4.0.4 NL vs Dementia table


clusterFeatures <- fc$names

tableNL_DE <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "OR",
                                     "upper",
                                     "full.AUC",
                                     "Delta.AUC",
                                     "z.IDI",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableNL_DE$Cluster <- nugget[rownames(tableNL_DE)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableNL_DE$Description <- description[rownames(tableNL_DE)]
pander::pander(tableNL_DE)
  Estimate lower OR upper full.AUC Delta.AUC z.IDI Frequency Cluster Description
M_ST24TA -153.90 6.39e-92 1.45e-67 3.29e-43 0.915 0.02455 6.96 1.00 1 Cortical Thickness Average of LeftEntorhinal
Hippocampus -58.83 1.17e-38 2.83e-26 6.84e-14 0.915 0.02196 5.84 1.00 1 NA
RD_ST32TA 4.64 1.49e+00 1.04e+02 7.25e+03 0.909 0.00294 3.56 0.80 1 Cortical Thickness Average of LeftInferiorTemporal
M_ST51TA 324.67 9.53e+92 1.01e+141 1.07e+189 0.916 0.03333 7.30 0.85 1 Cortical Thickness Average of LeftPrecentral
M_ST31TA -212.64 5.58e-133 4.47e-93 3.58e-53 0.914 0.02753 6.89 0.55 1 Cortical Thickness Average of LeftInferiorParietal
M_ST24CV -126.03 5.06e-66 1.84e-55 6.68e-45 0.896 0.04885 9.09 1.00 2 Volume (Cortical Parcellation) of LeftEntorhinal
M_ST24SA 17.83 1.47e+01 5.56e+07 2.10e+14 0.900 0.01248 4.14 0.45 2 Surface Area of LeftEntorhinal
M_ST40CV -33.71 2.01e-25 2.29e-15 2.60e-05 0.903 0.01798 4.79 0.65 2 Volume (Cortical Parcellation) of LeftMiddleTemporal
M_ST31CV -21.05 4.55e-16 7.24e-10 1.15e-03 0.912 0.02055 4.91 0.35 1 Volume (Cortical Parcellation) of LeftInferiorParietal
M_ST12SV -99.35 3.37e-62 7.11e-44 1.50e-25 0.897 0.01839 5.39 0.95 2 Volume (WM Parcellation) of LeftAmygdala
M_ST15TA -111.39 6.38e-84 4.20e-49 2.77e-14 0.911 0.01467 4.46 0.30 1 Cortical Thickness Average of LeftCaudalMiddleFrontal
M_ST32TA -59.88 6.78e-40 9.85e-27 1.43e-13 0.889 0.01766 4.80 0.40 2 Cortical Thickness Average of LeftInferiorTemporal
RD_ST57TA 5.10 2.67e+00 1.64e+02 1.00e+04 0.897 0.01429 4.01 0.45 2 Cortical Thickness Average of LeftSuperiorParietal
M_ST36CV 41.51 5.35e+06 1.07e+18 2.12e+29 0.898 0.01678 5.12 0.55 2 Volume (Cortical Parcellation) of LeftLateralOrbitofrontal
M_ST32CV -30.61 2.31e-23 5.09e-14 1.12e-04 0.886 0.01251 4.38 0.60 3 Volume (Cortical Parcellation) of LeftInferiorTemporal
M_ST39CV 31.34 1.34e+05 4.09e+13 1.25e+22 0.894 0.01809 5.02 0.60 2 Volume (Cortical Parcellation) of LeftMedialOrbitofrontal
M_ST30SV 9.76 6.24e+01 1.73e+04 4.79e+06 0.888 0.01592 5.42 0.40 3 Volume (WM Parcellation) of LeftInferiorLateralVentricle
M_ST40TA -207.63 4.70e-123 6.70e-91 9.57e-59 0.888 0.02418 6.72 0.50 3 Cortical Thickness Average of LeftMiddleTemporal
RD_ST55TA 3.07 1.38e+00 2.15e+01 3.35e+02 0.902 0.01329 3.46 0.25 2 Cortical Thickness Average of LeftRostralMiddleFrontal
RD_ST29SV 3.90 2.38e+00 4.94e+01 1.02e+03 0.887 0.01862 3.99 0.25 3 Volume (WM Parcellation) of LeftHippocampus
M_ST45TA 162.32 1.76e+44 3.13e+70 5.57e+96 0.889 0.02181 5.79 0.35 3 Cortical Thickness Average of LeftParsOpercularis

4.1 Decorrelated Set

TADPOLE_DX_NLDE_TRAIND <- GDSTMDecorrelation(TADPOLE_DX_NLDE_TRAIN,Outcome="DX",
                                        thr=0.6,
                                        type="RLM",
                                        method="spearman",
                                        verbose = TRUE)
#> 
#>  Included: 194 , Uni p: 0.01165645 To Outcome: 110 , Base: 5 , In Included: 5 , Base Cor: 13 
#> 1 , Top: 38 < 0.6 >( 2 )[ 1 : 0 : 0.594 ]( 38 , 84 , 0 ),<>Tot Used: 122 , Added: 84 , Zero Std: 0 , Max Cor: 0.996129 
#> 2 , Top: 27 < 0.6 >( 1 )[ 1 : 0 : 0.594 ]( 25 , 32 , 38 ),<>Tot Used: 148 , Added: 32 , Zero Std: 0 , Max Cor: 0.9334342 
#> 3 , Top: 20 < 0.6 >[ FALSE ]( 1 )[ 1 : 1 : 0.594 ]( 19 , 25 , 59 ),<>Tot Used: 160 , Added: 25 , Zero Std: 0 , Max Cor: 0.9362059 
#> 4 , Top: 11 < 0.6 >( 3 )[ 1 : 0 : 0 ]( 11 , 14 , 72 ),<>Tot Used: 163 , Added: 14 , Zero Std: 0 , Max Cor: 0.850563 
#> 5 , Top: 5 < 0.6 >[ FALSE ]( 1 )[ 1 : 0 : 0 ]( 5 , 5 , 80 ),<>Tot Used: 165 , Added: 5 , Zero Std: 0 , Max Cor: 0.8831114 
#> 6 , Top: 3 < 0.6 >[ FALSE ]( 1 )[ 1 : 0 : 0 ]( 3 , 3 , 83 ),<>Tot Used: 167 , Added: 3 , Zero Std: 0 , Max Cor: 0.5980317 
#> [ 7 ], 0.5980317 . Cor to Base: 99 , ABase: 60
TADPOLE_DX_NLDE_TESTD <-  predictDecorrelate(TADPOLE_DX_NLDE_TRAIND,TADPOLE_DX_NLDE_TEST)

4.1.1 Learning



bDXmlNLDED <- BSWiMS.model(DX~.,TADPOLE_DX_NLDE_TRAIND,NumberofRepeats = 20)

[+-+-+-+-+-+-+-+-+–+-+-+-+-+-+–+-+-+-+-+-]..

pander::pander(bDXmlNLDED$bagging$Jaccard.SM)

1


fs <- bDXmlNLDED$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bDXmlNLDED)
pander::pander(sm$coefficients)
  Estimate lower OR upper u.Accuracy r.Accuracy full.Accuracy u.AUC r.AUC full.AUC IDI NRI z.IDI z.NRI Delta.AUC Frequency
Ba_M_ST24TA -719 0.00e+00 3.70e-313 4.56e-269 0.850 0.671 0.918 0.842 0.659 0.916 0.5437 1.600 26.42 31.5 0.2565 1
De_M_ST51TA 2127 Inf Inf Inf 0.627 0.883 0.918 0.616 0.879 0.916 0.1189 0.891 8.90 11.8 0.0361 1
De_Hippocampus -170 2.44e-98 2.13e-74 1.86e-50 0.575 0.891 0.918 0.576 0.888 0.916 0.0783 0.783 7.24 10.1 0.0272 1
pander::pander(bDXmlNLDED$univariate[bDXmlNLDED$selectedfeatures,])
  Name RName ZUni
Ba_M_ST24TA Ba_M_ST24TA Ba_M_ST24TA 20.33
De_M_ST51TA De_M_ST51TA De_M_ST51TA 6.84
De_Hippocampus De_Hippocampus De_Hippocampus 4.23

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TESTD$DX,predict(bDXmlNLDED,TADPOLE_DX_NLDE_TESTD)),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.926 0.892 0.96
pander::pander(prBin$accc)
est lower upper
0.867 0.822 0.905
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.154 0.113 0.2
pander::pander(prBin$sensitivity)
est lower upper
0.765 0.669 0.845
par(op)

4.1.2 The formula network

cmax <- apply(bDXmlNLDED$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]

adma <- bDXmlNLDED$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=10*E(gr)$weight,
     vertex.size=10*cmax,
     vertex.label.cex=0.75,
     vertex.label.dist=0,
     main="NL vs Dementia Diagnosis")

par(op)

4.1.3 Decorrelated NL vs Dementia table


clusterFeatures <- fc$names

tableNL_DED <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "OR",
                                     "upper",
                                     "full.AUC",
                                     "Delta.AUC",
                                     "z.IDI",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableNL_DED$Cluster <- nugget[rownames(tableNL_DED)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
rnames <- str_replace_all(rnames,"Ba_","")
rnames <- str_replace_all(rnames,"De_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableNL_DED$Description <- description[rownames(tableNL_DED)]



## Getting the decorrelation formula
dc <- getDerivedCoefficients(TADPOLE_DX_NLDE_TRAIND)
decornames <- rownames(sm$coefficients)

deNames_in_dc <- decornames[decornames %in% names(dc)]
theDeFormulas <- dc[deNames_in_dc]
deFromula <- character(length(theDeFormulas))
names(deFromula) <- names(theDeFormulas)
for (dx in names(deFromula))
{
  coef <- theDeFormulas[[dx]]
  cname <- names(theDeFormulas[[dx]])
  names(cname) <- cname
  for (cf in names(coef))
  {
    if (cf != dx)
    {
      if (coef[cf]>0)
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("+ %5.3f*%s",coef[cf],cname[cf]))
      }
      else
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("%5.3f*%s",coef[cf],cname[cf]))
      }
    }
  }
}

tableNL_DED$DecorFormula <- deFromula[rownames(tableNL_DED)]



pander::pander(tableNL_DED)
  Estimate lower OR upper full.AUC Delta.AUC z.IDI Frequency Cluster Description DecorFormula
Ba_M_ST24TA -719 0.00e+00 3.70e-313 4.56e-269 0.916 0.2565 26.42 1 1 Cortical Thickness Average of LeftEntorhinal NA
De_M_ST51TA 2127 Inf Inf Inf 0.916 0.0361 8.90 1 1 Cortical Thickness Average of LeftPrecentral -0.515M_ST31TA + 1.000M_ST51TA + 0.032M_ST51SA -0.135M_ST51CV
De_Hippocampus -170 2.44e-98 2.13e-74 1.86e-50 0.916 0.0272 7.24 1 1 NA + 1.000Hippocampus -1.820M_ST24TA

5 Prognosis MCI to AD Conversion

5.1 the set

TrainFraction <- 0.60;

MCIPrognosisIDs <- c(MCIconverters$PTID,MCI_No_converters$PTID)

TADPOLECrossMRI <- validBaselineTadpole[MCIPrognosisIDs,]
table(TADPOLECrossMRI$DX)

Dementia MCI NL 0 680 0

TADPOLECrossMRI$DX <- NULL
TADPOLECrossMRI$status <- 1*(rownames(TADPOLECrossMRI) %in% MCIconverters$PTID)
table(TADPOLECrossMRI$status)

0 1 436 244

TADPOLECrossMRI$TimeToEvent <- numeric(nrow(TADPOLECrossMRI))
TADPOLECrossMRI[MCIconverters$PTID,"TimeToEvent"] <- MCIconverters$TimeToEvent
TADPOLECrossMRI[MCI_No_converters$PTID,"TimeToEvent"] <- MCI_No_converters$TimeToEvent

TADPOLE_Cases <- subset(TADPOLECrossMRI,status==1)
TADPOLE_Controls <- subset(TADPOLECrossMRI,status==0)
trainCasesSet <- sample(nrow(TADPOLE_Cases),nrow(TADPOLE_Cases)*TrainFraction)
trainControlSet <- sample(nrow(TADPOLE_Controls),nrow(TADPOLE_Controls)*TrainFraction)

TADPOLE_Conv_TRAIN <- rbind(TADPOLE_Cases[trainCasesSet,],TADPOLE_Controls[trainControlSet,])
TADPOLE_Conv_TEST <- TADPOLECrossMRI[!(rownames(TADPOLECrossMRI) %in%
                                         rownames(TADPOLE_Conv_TRAIN)),]

pander::pander(table(TADPOLE_Conv_TRAIN$status))
0 1
261 146
pander::pander(table(TADPOLE_Conv_TEST$status))
0 1
175 98
par(op)

5.1.1 Learning

bConvml <- BSWiMS.model(Surv(TimeToEvent,status)~1,TADPOLE_Conv_TRAIN,NumberofRepeats = 20)

[++–++–+-+-++-++-+++-++-+-+++-++-++-++-++–+++-+–+++—+–+–++-+-+-+++-]….

pander::pander(bConvml$bagging$Jaccard.SM)

0.257


fs <- bConvml$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bConvml)
pander::pander(sm$coefficients)
  Estimate lower HR upper u.Accuracy r.Accuracy full.Accuracy u.AUC r.AUC full.AUC IDI NRI z.IDI z.NRI Delta.AUC Frequency
ADAS13 0.06013 1.05e+00 1.06e+00 1.08e+00 0.713 0.759 0.781 0.712 0.750 0.781 0.0853 0.635 8.67 7.69 0.030593 1.00
M_ST24CV -15.56540 4.49e-09 1.74e-07 6.72e-06 0.692 0.684 0.735 0.680 0.698 0.742 0.0690 0.657 8.14 8.01 0.044068 0.35
RAVLT_immediate -0.01969 9.75e-01 9.81e-01 9.86e-01 0.633 0.725 0.736 0.647 0.719 0.744 0.0895 0.624 7.78 7.61 0.025171 0.50
ADAS11 0.02288 1.01e+00 1.02e+00 1.03e+00 0.687 0.706 0.747 0.674 0.710 0.749 0.0767 0.600 7.47 7.28 0.038270 0.75
M_ST40SA -3.62353 5.48e-03 2.67e-02 1.30e-01 0.622 0.732 0.734 0.621 0.740 0.741 0.0336 0.578 6.43 6.97 0.001001 0.40
M_ST12SV -12.77498 1.46e-08 2.83e-06 5.48e-04 0.695 0.731 0.748 0.697 0.727 0.751 0.0394 0.540 6.19 6.47 0.023798 0.75
M_ST40CV -16.30048 3.77e-12 8.33e-08 1.84e-03 0.704 0.763 0.781 0.692 0.759 0.781 0.0277 0.381 5.20 4.47 0.022549 1.00
RAVLT_perc_forgetting 0.00232 1.00e+00 1.00e+00 1.00e+00 0.671 0.777 0.779 0.682 0.775 0.779 0.0150 0.601 4.96 7.32 0.004889 0.90
FAQ 0.05881 1.02e+00 1.06e+00 1.10e+00 0.735 0.758 0.781 0.696 0.761 0.781 0.0315 0.492 4.78 6.10 0.020034 1.00
RAVLT_forgetting 0.01450 1.00e+00 1.01e+00 1.03e+00 0.563 0.737 0.736 0.578 0.744 0.744 0.0134 0.447 4.74 5.28 0.000192 0.30
M_ST56CV -6.06725 2.77e-05 2.32e-03 1.94e-01 0.656 0.759 0.765 0.652 0.755 0.766 0.0230 0.344 4.64 4.01 0.010988 0.50
M_ST24SA -9.47742 3.19e-08 7.66e-05 1.84e-01 0.595 0.777 0.781 0.596 0.775 0.782 0.0200 0.400 4.24 4.68 0.006677 0.85
RD_ST65SV -6.62059 4.08e-06 1.33e-03 4.35e-01 0.530 0.719 0.739 0.553 0.725 0.745 0.0192 0.359 4.18 4.24 0.020334 0.50
RD_ST56TA 2.57234 1.68e+00 1.31e+01 1.02e+02 0.604 0.738 0.736 0.574 0.751 0.743 0.0183 0.295 3.97 3.51 -0.007372 0.25
RD_ST31TA 1.11643 1.15e+00 3.05e+00 8.09e+00 0.628 0.764 0.771 0.605 0.763 0.769 0.0134 0.343 3.54 4.05 0.006803 0.55
pander::pander(bConvml$univariate[bConvml$selectedfeatures,])
  Name RName ZUni
ADAS13 ADAS13 ADAS13 11.01
FAQ FAQ FAQ 8.43
M_ST40CV M_ST40CV M_ST40CV 10.28
M_ST24SA M_ST24SA M_ST24SA 3.84
RAVLT_perc_forgetting RAVLT_perc_forgetting RAVLT_perc_forgetting 7.98
ADAS11 ADAS11 ADAS11 9.67
M_ST29SV M_ST29SV M_ST29SV 9.26
RD_ST31TA RD_ST31TA RD_ST31TA 4.27
M_ST12SV M_ST12SV M_ST12SV 9.67
M_ST56CV M_ST56CV M_ST56CV 7.58
RAVLT_immediate RAVLT_immediate RAVLT_immediate 7.50
M_ST40SA M_ST40SA M_ST40SA 5.61
RD_ST65SV RD_ST65SV RD_ST65SV 1.74
RAVLT_forgetting RAVLT_forgetting RAVLT_forgetting 3.47
M_ST24CV M_ST24CV M_ST24CV 8.21
M_ST13TA M_ST13TA M_ST13TA 8.07
RD_ST56TA RD_ST56TA RD_ST56TA 3.22
RD_ST49CV RD_ST49CV RD_ST49CV 1.74

ptestl <- predict(bConvml,TADPOLE_Conv_TEST,type="lp")
boxplot(ptestl~TADPOLE_Conv_TEST$status)

ptestr <- predict(bConvml,TADPOLE_Conv_TEST,type="risk")
eventCases <- subset(TADPOLE_Conv_TEST,status==1)
plot(1.0/ptestr[rownames(eventCases)]~eventCases$TimeToEvent)

pander::pander(cor.test(eventCases$TimeToEvent,1.0/ptestr[rownames(eventCases)],method="spearman"))
Spearman’s rank correlation rho: eventCases$TimeToEvent and 1/ptestr[rownames(eventCases)]
Test statistic P value Alternative hypothesis rho
110840 0.00337 * * two.sided 0.293



perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)
prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")

pander::pander(prSurv$CIRisk)
median lower upper
0.829 0.793 0.865
pander::pander(prSurv$CILp)
median lower upper
0.86 0.813 0.903
pander::pander(prSurv$spearmanCI)
50% 2.5% 97.5%
0.295 0.0855 0.488

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TEST$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.86 0.816 0.904
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 78 38 116
Test - 20 137 157
Total 98 175 273

par(op)

5.1.2 The formula network

cmax <- apply(bConvml$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]

adma <- bConvml$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=5*E(gr)$weight,
     vertex.size=20*cmax,
     vertex.label.cex=0.75,
     vertex.label.dist=0,
     main="MCI to Dementia Conversion")

par(op)

5.1.3 MCI to Dementia table


clusterFeatures <- fc$names

tableMCI_to_Dem <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "HR",
                                     "upper",
                                     "full.AUC",
                                     "Delta.AUC",
                                     "z.IDI",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableMCI_to_Dem$Cluster <- nugget[rownames(tableMCI_to_Dem)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
rnames <- str_replace_all(rnames,"Ba_","")
rnames <- str_replace_all(rnames,"De_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableMCI_to_Dem$Description <- description[rownames(tableMCI_to_Dem)]
pander::pander(tableMCI_to_Dem)
  Estimate lower HR upper full.AUC Delta.AUC z.IDI Frequency Cluster Description
ADAS13 0.06013 1.05e+00 1.06e+00 1.08e+00 0.781 0.030593 8.67 1.00 1 NA
FAQ 0.05881 1.02e+00 1.06e+00 1.10e+00 0.781 0.020034 4.78 1.00 1 NA
M_ST40CV -16.30048 3.77e-12 8.33e-08 1.84e-03 0.781 0.022549 5.20 1.00 1 Volume (Cortical Parcellation) of LeftMiddleTemporal
M_ST24SA -9.47742 3.19e-08 7.66e-05 1.84e-01 0.782 0.006677 4.24 0.85 1 Surface Area of LeftEntorhinal
RAVLT_perc_forgetting 0.00232 1.00e+00 1.00e+00 1.00e+00 0.779 0.004889 4.96 0.90 1 NA
ADAS11 0.02288 1.01e+00 1.02e+00 1.03e+00 0.749 0.038270 7.47 0.75 2 NA
RD_ST31TA 1.11643 1.15e+00 3.05e+00 8.09e+00 0.769 0.006803 3.54 0.55 2 Cortical Thickness Average of LeftInferiorParietal
M_ST12SV -12.77498 1.46e-08 2.83e-06 5.48e-04 0.751 0.023798 6.19 0.75 2 Volume (WM Parcellation) of LeftAmygdala
M_ST56CV -6.06725 2.77e-05 2.32e-03 1.94e-01 0.766 0.010988 4.64 0.50 2 Volume (Cortical Parcellation) of LeftSuperiorFrontal
RAVLT_immediate -0.01969 9.75e-01 9.81e-01 9.86e-01 0.744 0.025171 7.78 0.50 3 NA
M_ST40SA -3.62353 5.48e-03 2.67e-02 1.30e-01 0.741 0.001001 6.43 0.40 3 Surface Area of LeftMiddleTemporal
RD_ST65SV -6.62059 4.08e-06 1.33e-03 4.35e-01 0.745 0.020334 4.18 0.50 3 Volume (WM Parcellation) of LeftVentralDC
RAVLT_forgetting 0.01450 1.00e+00 1.01e+00 1.03e+00 0.744 0.000192 4.74 0.30 3 NA
M_ST24CV -15.56540 4.49e-09 1.74e-07 6.72e-06 0.742 0.044068 8.14 0.35 3 Volume (Cortical Parcellation) of LeftEntorhinal
RD_ST56TA 2.57234 1.68e+00 1.31e+01 1.02e+02 0.743 -0.007372 3.97 0.25 3 Cortical Thickness Average of LeftSuperiorFrontal

5.2 Decorrelated

TADPOLE_Conv_TRAIND <- GDSTMDecorrelation(TADPOLE_Conv_TRAIN,
                                          Outcome="status",
                                          thr=0.6,
                                          type="RLM",
                                          method="spearman",
                                          verbose = TRUE)
#> 
#>  Included: 212 , Uni p: 0.012727 To Outcome: 119 , Base: 4 , In Included: 4 , Base Cor: 6 
#> 1 , Top: 40 < 0.6 >( 3 )[ 1 : 0 : 0.594 ]( 38 , 100 , 0 ),<>Tot Used: 138 , Added: 100 , Zero Std: 0 , Max Cor: 0.9930238 
#> 2 , Top: 36 < 0.6 >[ FALSE ]( 1 )[ 1 : 0 : 0.594 ]( 33 , 40 , 38 ),<>Tot Used: 168 , Added: 40 , Zero Std: 0 , Max Cor: 0.8953444 
#> 3 , Top: 22 < 0.6 >( 1 )[ 1 : 0 : 0.594 ]( 22 , 25 , 64 ),<>Tot Used: 171 , Added: 25 , Zero Std: 0 , Max Cor: 0.9205408 
#> 4 , Top: 10 < 0.6 >( 1 )[ 1 : 0 : 0 ]( 10 , 11 , 81 ),<>Tot Used: 172 , Added: 11 , Zero Std: 0 , Max Cor: 0.6303874 
#> 5 , Top: 2 < 0.6 >( 1 )[ 1 : 0 : 0.6 ]( 2 , 2 , 87 ),<>Tot Used: 172 , Added: 2 , Zero Std: 0 , Max Cor: 0.5997743 
#> [ 6 ], 0.5997743 . Cor to Base: 107 , ABase: 77
TADPOLE_Conv_TESTD <-  predictDecorrelate(TADPOLE_Conv_TRAIND,TADPOLE_Conv_TEST)

5.2.1 Learning

bConvmlD <- BSWiMS.model(Surv(TimeToEvent,status)~1,TADPOLE_Conv_TRAIND,NumberofRepeats = 20)

[+-+-+-+-+-+-+-+-+–+-+-+-+-+-+-+-+-+–+-+-]..

pander::pander(bConvmlD$bagging$Jaccard.SM)

0.617


fs <- bConvmlD$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bConvmlD)
pander::pander(sm$coefficients)
  Estimate lower HR upper u.Accuracy r.Accuracy full.Accuracy u.AUC r.AUC full.AUC IDI NRI z.IDI z.NRI Delta.AUC Frequency
Ba_ADAS13 0.1173 1.10e+00 1.12e+00 1.15e+00 0.713 0.773 0.796 0.712 0.761 0.795 0.108962 0.698 9.66 8.57 0.03406 1.00
FAQ 0.1242 1.08e+00 1.13e+00 1.19e+00 0.734 0.768 0.796 0.696 0.770 0.795 0.050598 0.571 6.63 7.23 0.02410 1.00
De_M_ST13TA -258.3195 1.34e-182 6.51e-113 3.15e-43 0.599 0.782 0.798 0.598 0.777 0.797 0.028197 0.445 5.23 5.25 0.01923 0.75
M_ST49CV -26.8013 4.50e-20 2.29e-12 1.17e-04 0.606 0.796 0.797 0.613 0.790 0.795 0.019705 0.409 4.92 4.80 0.00478 0.75
RD_ST31TA 5.9872 6.48e+00 3.98e+02 2.45e+04 0.627 0.796 0.798 0.605 0.793 0.797 0.017701 0.471 4.82 5.64 0.00397 0.80
De_M_ST48CV -8.8309 3.52e-07 1.46e-04 6.06e-02 0.564 0.809 0.814 0.554 0.808 0.814 0.007397 0.264 4.14 3.06 0.00624 0.25
Ba_RD_ST49CV -0.6003 3.32e-01 5.49e-01 9.07e-01 0.519 0.818 0.828 0.532 0.818 0.828 0.013152 0.267 4.09 3.12 0.00956 0.10
De_M_ST24SA -16.1212 8.69e-14 9.97e-08 1.14e-01 0.592 0.786 0.797 0.597 0.781 0.795 0.014967 0.362 3.91 4.23 0.01388 0.90
De_M_ST29SV -3.2129 3.61e-03 4.02e-02 4.49e-01 0.706 0.791 0.799 0.698 0.786 0.796 0.010221 0.259 3.76 3.01 0.00980 0.35
RD_ST37SV -0.5303 3.46e-01 5.88e-01 1.00e+00 0.495 0.799 0.802 0.521 0.799 0.802 0.010429 0.293 3.49 3.45 0.00306 0.10
RD_ST65SV -4.9615 5.09e-05 7.00e-03 9.64e-01 0.531 0.798 0.810 0.552 0.798 0.810 0.007927 0.297 3.24 3.49 0.01159 0.30
Ba_M_ST56SA -1.3203 8.06e-02 2.67e-01 8.85e-01 0.566 0.798 0.820 0.565 0.798 0.822 0.014117 0.171 3.24 1.98 0.02373 0.15
De_M_ST39CV -0.0835 7.29e-01 9.20e-01 1.16e+00 0.568 0.780 0.783 0.563 0.770 0.774 0.000919 0.196 2.09 2.26 0.00429 0.05
pander::pander(bConvmlD$univariate[bConvmlD$selectedfeatures,])
  Name RName ZUni
Ba_ADAS13 Ba_ADAS13 Ba_ADAS13 11.01
FAQ FAQ FAQ 8.43
De_M_ST29SV De_M_ST29SV De_M_ST29SV 8.93
M_ST49CV M_ST49CV M_ST49CV 5.76
De_M_ST39CV De_M_ST39CV De_M_ST39CV 3.14
De_M_ST24SA De_M_ST24SA De_M_ST24SA 3.84
De_M_ST13TA De_M_ST13TA De_M_ST13TA 4.26
RD_ST31TA RD_ST31TA RD_ST31TA 4.27
De_M_ST48CV De_M_ST48CV De_M_ST48CV 3.38
RD_ST37SV RD_ST37SV RD_ST37SV 1.66
RD_ST65SV RD_ST65SV RD_ST65SV 1.74
Ba_M_ST56SA Ba_M_ST56SA Ba_M_ST56SA 3.97
Ba_RD_ST49CV Ba_RD_ST49CV Ba_RD_ST49CV 1.74

ptestl <- predict(bConvmlD,TADPOLE_Conv_TESTD,type="lp")
boxplot(ptestl~TADPOLE_Conv_TEST$status)

ptestr <- predict(bConvmlD,TADPOLE_Conv_TESTD,type="risk")
eventCases <- subset(TADPOLE_Conv_TEST,status==1)
plot(1.0/ptestr[rownames(eventCases)]~eventCases$TimeToEvent)

pander::pander(cor.test(eventCases$TimeToEvent,1.0/ptestr[rownames(eventCases)],method="spearman"))
Spearman’s rank correlation rho: eventCases$TimeToEvent and 1/ptestr[rownames(eventCases)]
Test statistic P value Alternative hypothesis rho
103978 0.000689 * * * two.sided 0.337



perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)
prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")

pander::pander(prSurv$CIRisk)
median lower upper
0.83 0.791 0.866
pander::pander(prSurv$CILp)
median lower upper
0.857 0.807 0.899
pander::pander(prSurv$spearmanCI)
50% 2.5% 97.5%
0.34 0.134 0.521

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TESTD$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.857 0.813 0.902
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 76 36 112
Test - 22 139 161
Total 98 175 273

par(op)

5.2.2 The formula network

cmax <- apply(bConvmlD$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]

adma <- bConvmlD$bagging$formulaNetwork[cnames,cnames]

adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr

fc <- cluster_optimal(gr)
plot(fc, gr,
     edge.width=5*E(gr)$weight,
     vertex.size=20*cmax,
     vertex.label.cex=0.75,
     vertex.label.dist=0,
     main="MCI to Dementia Conversion")

par(op)

5.2.3 Decorrelated MCI to Dementia table


clusterFeatures <- fc$names

tableMCI_to_DemD <- sm$coefficients[clusterFeatures,
                                   c("Estimate",
                                     "lower",
                                     "HR",
                                     "upper",
                                     "full.AUC",
                                     "Delta.AUC",
                                     "z.IDI",
                                     "Frequency")]

nugget <- fc$membership
names(nugget) <- clusterFeatures

tableMCI_to_DemD$Cluster <- nugget[rownames(tableMCI_to_DemD)]

rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
rnames <- str_replace_all(rnames,"Ba_","")
rnames <- str_replace_all(rnames,"De_","")
description <- character()

for (ddet in c(1:length(rnames)))
{
  description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames

tableMCI_to_DemD$Description <- description[rownames(tableMCI_to_DemD)]


## Getting the decorrelation formula
dc <- getDerivedCoefficients(TADPOLE_Conv_TRAIND)
decornames <- rownames(sm$coefficients)

deNames_in_dc <- decornames[decornames %in% names(dc)]
theDeFormulas <- dc[deNames_in_dc]
deFromula <- character(length(theDeFormulas))
names(deFromula) <- names(theDeFormulas)
for (dx in names(deFromula))
{
  coef <- theDeFormulas[[dx]]
  cname <- names(theDeFormulas[[dx]])
  names(cname) <- cname
  for (cf in names(coef))
  {
    if (cf != dx)
    {
      if (coef[cf]>0)
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("+ %5.3f*%s",coef[cf],cname[cf]))
      }
      else
      {
        deFromula[dx] <- paste(deFromula[dx],
                               sprintf("%5.3f*%s",coef[cf],cname[cf]))
      }
    }
  }
}

tableMCI_to_DemD$DecorFormula <- deFromula[rownames(tableMCI_to_DemD)]


pander::pander(tableMCI_to_DemD)
  Estimate lower HR upper full.AUC Delta.AUC z.IDI Frequency Cluster Description DecorFormula
Ba_ADAS13 0.117 1.10e+00 1.12e+00 1.15e+00 0.795 0.03406 9.66 1.00 1 NA NA
FAQ 0.124 1.08e+00 1.13e+00 1.19e+00 0.795 0.02410 6.63 1.00 1 NA NA
De_M_ST29SV -3.213 3.61e-03 4.02e-02 4.49e-01 0.796 0.00980 3.76 0.35 2 Volume (WM Parcellation) of LeftHippocampus + 0.105Ventricles + 1.000M_ST29SV
M_ST49CV -26.801 4.50e-20 2.29e-12 1.17e-04 0.795 0.00478 4.92 0.75 1 Volume (Cortical Parcellation) of LeftPostcentral NA
De_M_ST24SA -16.121 8.69e-14 9.97e-08 1.14e-01 0.795 0.01388 3.91 0.90 1 Surface Area of LeftEntorhinal NA
De_M_ST13TA -258.320 1.34e-182 6.51e-113 3.15e-43 0.797 0.01923 5.23 0.75 1 Cortical Thickness Average of LeftBankssts + 1.000M_ST13TA -0.861M_ST59TA
RD_ST31TA 5.987 6.48e+00 3.98e+02 2.45e+04 0.797 0.00397 4.82 0.80 1 Cortical Thickness Average of LeftInferiorParietal NA
De_M_ST48CV -8.831 3.52e-07 1.46e-04 6.06e-02 0.814 0.00624 4.14 0.25 2 Volume (Cortical Parcellation) of LeftPericalcarine -6.760M_ST48TS -0.203M_ST48SA + 1.000*M_ST48CV
RD_ST65SV -4.962 5.09e-05 7.00e-03 9.64e-01 0.810 0.01159 3.24 0.30 1 Volume (WM Parcellation) of LeftVentralDC NA

5.2.4 Saving the enviroment

save.image("~/GitHub/BSWiMS/TADPOLE_BSWIMS_Results.RData")